1.9.2014 TIE-02300/K.Systä 1 Johdatus ohjelmistotuotantoon Luento 2 1.9.2014
YLEISIÄ KURSSIN ASIOITA 1.9.2014 TIE-02300/K.Systä 2
Viikkoharjoitukset Tiistai klo 10-12 Tensu (tero.ahtee@tut.fi) Tiistai klo 12-14 Tensu (tero.ahtee@tut.fi) Keskiviikko klo 10-12 Henri (henri.terho@tut.fi) Keskiviikko klo 12-14 Henri (henri.terho@tut.fi) Keskiviikko klo 14-16 Marko (marko.leppanen@tut.fi) Keskiviikko klo 16-18 Marko (marko.leppanen@tut.fi) Torstai klo 12-14 Miika (miika.savolainen@student.tut.fi) Torstai klo 14-16 Miika (miika.savolainen@student.tut.fi) Torstai klo 16-18 Tensu (tero.ahtee@tut.fi) Maksimi määrä per ryhmä 28! 1.9.2014 TIE-02300/K.Systä 3
Harjoitustyö pe 31.8. klo 16:00: Ryhmien oltava muodostettuna IDLEen pe 5.9. klo 23:59: Henkilökunta täydentänyt vajaat ryhmät ja tehneet ryhmäjaon pe 12.9. klo 16:00: Alustavat asiakasvaatimukset oltava palautettuna ohjaavalle assarille ja toimittajaryhmälle pe 12.9. klo 16:00: Asiakastapaamisajan oltava varattuna IDLEstä. ma 15.9. - pe 19.9.: Asiakastapaamiset pe 21.11. klo 16:00: Toiminnallisen määrittelydokumentin palautuksen takaraja pe 5.12. klo 16:00: Palautteen takaraja 1.9.2014 TIE-02300/K.Systä 4
Alustava luentoaikataulu 25.8: Johdanto + historiaa, mitä on ohjelmistotuotanto 01.09: Ohjelmistojen roolista ja ohjelmistotyön määrästä, ohjelmistotyypit 08.09: Miten ohjelmistotyö organisoidaan (vaihejako ja prosessi-mallit) 15.09: Vaatimusmäärittelyt 22.09: Projektitoiminta 30.09: Yleiset notaatiot erityisesti UML 07.10: Esimerkkiprojekti (vierailuluento esillä ihan oikea projekti) 20.10: Asiakasroolista 27.10: Käyttäjä ja käyttäjäkokemus ohjelmistoprojektissa 03.11: Tiedon mallintaminen 11.11: Ohjelmisto osana laitetta 17.11: IPR, sopimukset, avoin lähdekoodi 24.11: Mitä on ohjelmistotuotanto (historiaperspektiivi, kertausta) 1.12: Kertausta, tenttiin valmistautuminen 1.9.2014 TIE-02300/K.Systä 5
Tämän viikon luennosta Ohjelmistojen roolista ja ohjelmistojen ominaisuuksista Ohjelmistotyön määrästä, ohjelmistotyypit Ohjelmistojen tekeminen helikopteri-perspektiivistä katsottuna (+ muutamia esimerkkejä) Oppimistavoitteet Ymmärtää millaisia ohjelmia tehdään ja mikä on niiden merkitys Ymmärtää millaisia ohjelmistojen rakentamisen organisatorisia rakenteita on 1.9.2014 TIE-02300/K.Systä 6
1.9.2014 TIE-02300/K.Systä 7 POHDINTAA ERILAISISTA OHJELMISTOTYYPEISTÄ
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 8 1.9.2014 TIE-02300/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ä? 9 1.9.2014 TIE-02300/K.Systä
Esimerkki 1: Pieni sulautettu järjestelmä (venttiili) Teknisiä haasteita - luotettavuus - nopeus (reaaliaika) - säätöalgoritmi - muisti, prosessori, virta Toteutuksen haasteita - kehitystyökalut - testaaminen TIE-02300/K.Systä 10
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) TIE-02300/K.Systä 11
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. TIE-02300/K.Systä 12
TIE-02300/K.Systä 13 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 13
Esimerkki 5: Internet-palvelu Mainospalvelin HTML generointi Sovellus Pankki Sosiaalinen media Tietokanta Varasto TIE-02300/K.Systä 1.9.2014 14
Android HTML generointi Sovellus Varasto Tietokanta Source: technologia.com TIE-02300/K.Systä 1.9.2014 15
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 TIE-02300/K.Systä 1.9.2014 16
TIE-02300/K.Systä 17 Mutta sitten on vielä ne sulautetut järjestelmät 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 Työn tuottavuus? Mitä isompi ohjelmisto sitä enemmän osaamista tarvitaan LOC Lines of Code, koodiriviä 17
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 1.9.2014 TIE-02300/K.Systä 18
TIE-02300/K.Systä 19 Ohjelmistotekniikka on geneeristä 19
Pohdinta: Montako tietokonetta teillä on? Neljä läppäriä (4) Hella (31) Kolme muuta tietokonetta (7) Kamerat (36) Kotiserver ja Chumby (9) Ilmalämpöpumput (40) Kaksi TV:tä (11) WLAN tukiasema (41) Kaksi digiboxia (13) CD/DVD soitin (14) (luennon jälkeen lisää) Printteri (15) Pelikonsolin ohjaimet (43) Skanneri (16) Digitaalinen lämpömittari (45) 5 kännykkää (21) Digitaalinen vaaka (46) Autossa ainakin kaksi (23) Astianpesukone (47) Audiovahvistin (digit) (24) Jääkaappi (48) Kaukosäätimiä (ainakin 3) (27) Pelikonsoli (28) Pesukone (29) Kiuas (30) 1.9.2014 TIE-02300/K.Systä 20
Harjoitustyö pe 31.8. klo 16:00: Ryhmien oltava muodostettuna IDLEen PÄIVITYS: työkalu on vielä auki! pe 5.9. klo 23:59: Henkilökunta täydentänyt vajaat ryhmät ja tehneet ryhmäjaon pe 12.9. klo 16:00: Alustavat asiakasvaatimukset oltava palautettuna ohjaavalle assarille ja toimittajaryhmälle pe 12.9. klo 16:00: Asiakastapaamisajan oltava varattuna IDLEstä. ma 15.9. - pe 19.9.: Asiakastapaamiset pe 21.11. klo 16:00: Toiminnallisen määrittelydokumentin palautuksen takaraja pe 5.12. klo 16:00: Palautteen takaraja 1.9.2014 TIE-02300/K.Systä 21
1.9.2014 TIE-02300/K.Systä 22 http://www.softwareindustrysurvey.fi/slidesfinland2014.pdf Softateon markkinoista Suomessa ja maailmalla
Pörssinoteerattujen yhtiöiden tulot laski 4.6% mutta pienet yritykset kasvoivat. http://www.softwareindustrysurvey.fi/ 23 1.9.2014 TIE-02300/K.Systä
Peliteollisuus on yksi kasvava esimerkki Estimated 2200 employees in Finland Most of the revenue is exports 1.9.2014 TIE-02300/K.Systä 24
Tulolähteet 1.9.2014 TIE-02300/K.Systä 25
1.9.2014 TIE-02300/K.Systä 26 JA MITÄS NE NOKIA ONGELMAT AIHEUTTI?
Nokian uuden strategian vaikutukset 27 1.9.2014 TIE-02300/K.Systä
Edelleen samasta lähteestä 28 1.9.2014 TIE-02300/K.Systä
Rank 2013 Top 10 Software Vendors, Worldwide, 2012-2013 (Billions of Dollars) Rank 2012 Vendor 2013 Revenue 2012 Revenue 2012-2013 Growth Rate (%) 1 1 Microsoft 65.7 62.0 6.0 2 3 Oracle 29.6 28.7 3.4 3 2 IBM 29.1 28.7 1.4 4 4 SAP 18.5 16.9 9.5 5 5 Symantec 6.4 6.4-0.8 6 6 EMC 5.6 5.4 4.9 7 7 HP 4.9 5.0-2.7 8 9 Vmware 4.8 4.2 14.1 9 8 CA Technologies 4.2 4.3-2.6 10 12 Salesforce.com 3.8 2.9 33.3 Others 234.6 224.0 4.7 Total 407.3 388.5 4.8 Gartner (March 2014) Worldwide Software Market Grew 4.8 Percent in 2013 IDC väittää 5.5% 1.9.2014 TIE-02300/K.Systä 29
Tähän taas yksi onneton Hakukoneeseen - Sampo - Danske - Verkkopankki - 2008 1.9.2014 TIE-02300/K.Systä 30
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. 1.9.2014 TIE-02300/K.Systä 31
Sampo Pankin ja Danske Bankin fuusio 2007-2008 (lähde Tietoviikon verkkosivut) Kun Danske Bank osti Sampo Pankin helmikuussa 2007, pankit asettivat tavoitteeksi saattaa järjestelmähanke loppuun pääsiäisenä 2008. Aikaa oli siis 13 kuukautta. Ei haluttu siltoja järjestelmien välille vaan yksi yhteinen alusta Sammon verkkopankki sulkeutui aivan aikataulussa kiirastorstai-iltana, minkä jälkeen alkoi kaikkien Sammon järjestelmien alasajo ja järjestelmissä olevan tiedon konvertointi Danske Bankin One Group One System -alustalle. Sunnuntaina alettiin sitten nostaa ylös Danske Bankin järjestelmää. Massiivisessa järjestelmänmuutoksessa meni uusiksi kaikki: muun muassa puhelinnumerot, sähköpostiosoitteet, pankki- ja luottokortit, verkkopankkisopimukset ja työasemat. Teknisessä roll outissa vaihdettiin pyhien aikana kaikki 3 400 tietokonetta sekä puhelimet, joiden osalta siirryttiin ip-puhelinjärjestelmään. Aivan ilman ongelmia jättiprojektista ei kuitenkaan selvitty. Muun muassa 800 000 suomalaiskäyttäjän verkkopankki kaatui aamuvarhaisella tiistaina. Sen jälkeen kaatuivat pankin verkkosivut. 1.9.2014 TIE-02300/K.Systä 32
Keskustelu kävi silloinkin kuumana 1.9.2014 TIE-02300/K.Systä 33
Sampo Pankin fuusio Danske Bankin kanssa 1.9.2014 TIE-02300/K.Systä 34
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ä 1.9.2014 TIE-02300/K.Systä 35
Kaksi oppia Organisaatioiden yhdistäminen johtaa IT-järjestelmien yhdistämisen ongelmiin Kertarysäys sisältää riskejä. 1.9.2014 TIE-02300/K.Systä 36
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. 1.9.2014 TIE-02300/K.Systä 37
Ohjelmiston rakentamisen vaiheet 1.9.2014 TIE-02300/K.Systä 38
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 1.9.2014 TIE-02300/K.Systä 39
1.9.2014 TIE-02300/K.Systä 40 Liiketoimintamallit Ostaja Tehdään itse Ostetaan valmis Teetätetään projekti Ostetaan pilvipalveluna Toimittaja Myydään softan kopioita ja/tai lisenssejä Myydään projekteja Myydään tuntityötä (reppu-malli) Myydään (pilvi)palveluna
Tulolähteet 1.9.2014 TIE-02300/K.Systä 41
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 1.9.2014 TIE-02300/K.Systä 42
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? 1.9.2014 TIE-02300/K.Systä 43
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. 1.9.2014 TIE-02300/K.Systä 44
Parin IDLEn kehityksen projektin työmäärä (n. 1800 tuntia) Esitutkim Määrit Suunnit Toteutus Testaus 1.9.2014 TIE-02300/K.Systä 45
1.9.2014 TIE-02300/K.Systä 46 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
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 47 1.9.2014 TIE-02300/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 48 1.9.2014 TIE-02300/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) 1.9.2014 TIE-02300/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 49