Kertausluento JOTU-2013 / K.Systä

Samankaltaiset tiedostot
Kertausluento JOTU-2014 / K.Systä

Kertausluento JOTU-2015 / K.Systä

OHJ-3010 Ohjelmistotuotannon perusteet

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Määrittelyvaihe. Projektinhallinta

Vaatimusmäärittelyistä

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Vaatimusmäärittelyistä

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Johdatus ohjelmistotuotantoon

Johdatus ohjelmistotuotantoon

Ketterä vaatimustenhallinta

Johdantoluento. Ohjelmien ylläpito

Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Projektitoiminta JOTU JOTU2013/K.Systä 1

Johdatus ohjelmistotuotantoon

käyttötapaukset mod. testaus

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus

Johdatus ohjelmistotuotantoon

Ohjelmistojen mallintaminen, mallintaminen ja UML

TIE Johdatus ohjelmistotuotantoon

Joku hauska otu-aiheinen kuva (no ei oo pakko olla hauska) OHJ-3010 Ohjelmistotuotannon perusteet, kesä 2012

OHJ Johdatus ohjelmistotuotantoon

Vaatimukset mitä ne ovat

TIE Johdatus ohjelmistotuotantoon

Johdatus ohjelmistotuotantoon

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistoposesseista

Ohjelmistotekniikan menetelmät, kesä 2008

OHJ-3010 Ohjelmistotuotannon perusteet, kesä 2012

Tietojärjestelmän osat

Ohjelmistojen mallintaminen, kesä 2010

Tutkittua tietoa. Tutkittua tietoa 1

Ohjelmistojen mallintaminen, kesä 2009

Miten löydän Sen Oikean? Senaattoritilaisuus Liisa Paasiala, Senior Consultant

Standardi IEC Ohjelmisto

Harjoitukset - muistutus

KONEAUTOMAATION LAATU JA TURVALLISUUS Marko Varpunen

TOIMINNALLINEN MÄÄRITTELY MS

Ohjelmistoprojektien hallinta Vaihejakomallit

Ohjelmistojen mallinnus, s2008 HY/TKTL, 28/10/2008. Harri Laine 1. Ohjelmisto

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

Projektin vaiheet

Software engineering

Ohjelmistotuotanto historiallinen perspektiivi JOTU2013/K.Systä 1

Avoimen ja yhteisen rajapinnan hallintamalli

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Projektitoiminta. JOTU (uusintayritys) TTY TIE-02300/Kari Systä 1

Prosessiajattelu. Organisaation prosessikuvaus - CMMI. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessien määritys CMMI käytänteet

Johdatus ohjelmistotuotantoon

Ohjelmistotekniikan menetelmät, kevät 2008

Koulutuksen suhdannevaihtelut. Zeppeliinistä suihkukoneaikaan

Johdanto. Mitä on ohjelmistotuotanto? Tämän kurssin näkökulma. Sami Kollanus TJTA330 Ohjelmistotuotanto

Mitä on ohjelmistotuotanto?

13/20: Kierrätys kannattaa koodaamisessakin

Prosessiajattelu. Prosessikuvaukset ja elinkaarimallit. Organisaation prosessikuvaus - CMMI. Sami Kollanus TJTA330 Ohjelmistotuotanto 3.4.

Ohjelmistojen suunnittelu

Projektityö

T Johdatus käyttäjäkeskeiseen tuotekehitykseen. suunnitteluprosessissa. Käyttäjän huomiointi. Iteroitu versio paljon kirjoitusvirheitä

Käyttäjäkeskeinen suunnittelu

Projektityö

ITK130 Ohjelmistojen luonne

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

Projektitoiminta JOTU JOTU2015/K.Systä 1

Testaaminen ohjelmiston kehitysprosessin aikana

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

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

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Yhteenveto. Menettelytavat

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistoprosessit ja ohjelmistojen laatu (4op)

Ohjelmisto osana laitetta

Ohjelmistotekniikan menetelmät, UML

Laadukas vaatimustenhallinta. Pekka Mäkinen Copyright SoftQA Oy

Mihin kaikkeen voit törmätä testauspäällikön saappaissa?

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

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Ohjelmistoarkkitehtuurit. Syksy 2008

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Ketterä projektinhallinta

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Enterprise SOA. Nyt. Systeemi-integraattorin näkökulma

Työn ositusmalleista. Luennon tavoitteista. Motivointia. Walker Royce, Software Project Management, A Unified Framework

Scrumjatkuvan palvelun DWprojektissa-case. Niina Mäkiranta & OP-scrum-tiimi Aureolis Oy

2. Ohjelmistotuotantoprosessi

1510 Ihminen ja tietoliikennetekniikka

Hieman lisää malleista ja niiden hyödyntämisestä

Ohjelmistotuotteen hallinnasta

CT60A4600 Projektinhallinta. Luentorunko. Luento 1:Yleistä ja organisaatiot. Projektinhallinta Osa 1: yleistä. Kurssin tavoitteet

GroupDesk Toiminnallinen määrittely

Koekysymyksiä. Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistojen suorituskyky

Software product lines

Oleelliset vaikeudet OT:ssa 1/2

Tuotantotalouden 25 op sivuaine

Scrumin käyttö ketterässä sovelluskehityksessä

Transkriptio:

02.12.2013 JOTU-2013 / K.Systä 1 Kertausluento 2.12.2013

Yleistä Harjoitustyön palautus meni vain assistenteille Jos teillä on kommentteja opponentti/asiakasryhmällä lähettäkää ne suoraan Kurssin henkilökunta pitää palaute/mietiskelypalaverin tenttiviikolla Lähettäkää ruusuja, risuja, parannusehdotuksia yms meille sitä ennen 02.12.2013 JOTU-2013 / K.Systä 2

Kertausluento Kirjan luku 1 Ohjelmistotuotannon yleiset haasteet Ohjelmistotyypit Kirjan luku 2 Projektimallit Yleiset periaatteet, asiakkaan kannalta Vaatimusten käsittely (kirjan luku 3) Asiakasrooleista Käytettävyyden merkityksestä Tiedon mallintamisesta (kirjan luku 10) Laadunvarmistuksesta Projektitoiminnasta Ohjelmistolisensseistä 02.12.2013 JOTU-2013 / K.Systä 3

Mitä vaaditaan tentissä Kurssin tavoite on kattaa alueet jotka sidosryhmien kuten asiakkaat, myynti, muiden alueiden insinöörit on hyvä tietää Kirja Ohjelmistotuotannon käytännöt, on hyvää lukemistoa mutta kirjan kaikki osat ei kuulu tenttialueeseen Kts seuraava kalvo Luennot, kalvot ovat verkossa mutta eivät sisällä kaikkea Luennolla kuullun muistaminen, tai googlettaminen auttaa 02.12.2013 JOTU-2013 / K.Systä 4

02.12.2013 JOTU-2013 / K.Systä 5 Mikä osa kirjasta kannattaa lukea Alku 1 2.8.2 on syytä lukea 2.8.3, 2.9, 2.10 ei kuulu tälle kurssille 3 on keskeistä sisältöä 4-4.3 kuuluu, mutta 4.4 ei 5 kuuluu 6 sillä tasolla kuin luennoilla käsiteltiin 7,8,9 ei kuulu 10 sillä tasolla kuin luennoilla käsiteltiin 11 ja 12 kuuluu 13 ja 14 ei kuulu 15 kuuluu 16 kuuluu mutta ei mennä yksityiskohtiin

Software Engineering -- ohjelmistotuotanto? Software -- ohjelmisto? Computer programs, procedures, rules, documentation, and data pertaining to the operation of a computer system. Software Engineering -- ohjelmistotuotanto? The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software. [IEEE 610.12] 6 02.12.2013 JOTU-2013 / K.Systä

Mitä on ohjelmistotuotanto? Vaatimusmäärittelyä Taitavaa ohjelmointia Elinkaarimallit Yhteispeliä, yhteistä peliä Algoritmit Tietorakenteet Ohjelmointikielet Arkkitehtuurit Laadunvarmistusta Testaus Validointi Projektinhallinta 702.12.2013 JOTU-2013 / K.Systä

Miksi ohjelmien tekeminen on niin vaikeaa? Ohjelmisto on abstrakti Tekijöiden ja asiakkaiden välillä ei välttämättä ole sama käsitys Työmäärän arviointi on vaikeaa Ohjelmisto on dynaaminen On muutettavissa muutettavuutta oletetaan Ohjelmistojen tekemistä on vaikea skaalata Tekijöiden määrän lisääminen nopeuttaa vain vähän valmistumista Mitä enemmän tekijöitä, sen enemmän kommunikointitarvetta. 02.12.2013 8 JOTU-2013 / K.Systä

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 9 02.12.2013 JOTU-2013 / K.Systä

Ohjelmistotyyppejä(2) Sulautetut järjestelmät Koneen tai laiteen sisällä hissin ohjausjärjestelmä Reaaliaikajärjestelmät (esimerkki) 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ä? 10 02.12.2013 JOTU-2013 / K.Systä

Kuva 1.2 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 11 6.9.2009 JOTU-2013 / K.Systä 11

Esimerkki 1: tyypillinen työkoneen ohjausjärjestelmä Ohjaus- PC Linux- tai Windows-käyttöjärjestelmä CAN-väylä Puomin ja kouran ohjaus Mootorin 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) 12 JOTU-2013 / K.Systä 12

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ä 13 6.9.2009 JOTU-2013 / K.Systä 13

Ohjelmiston ominaisuuksia ohjelmiston koko ja käsiteltävän tiedon määrä käsittelypainotteinen vs. tietopainotteinen vasteaika- ja reaaliaikaisuusvaatimukset kovat reaaliaikavaatimukset reaktioaika luotettavuus puolustautuva ohjelmointi kahdentaminen elektroniikka- ja mekaniikkatason varmistukset hajautus paikallinen / laaja sulautetut järjestelmät - laiteväylä 14 02.12.2013 JOTU-2013 / K.Systä

Tämä kulunut kuva on pakko näyttää 15 02.12.2013 JOTU-2013 / K.Systä

Miksi menee pieleen; tilaajanäkökulma Aikataulun pettäminen Budjetin pettäminen Eri näkemys projektin Laadun pettäminen Henkilövaihdokset Kommunikaation puute Sopimuksesta Hinnoittelumallista Ongelmat Ei kriisejä Yritysjärjestelyt 0 5 10 15 20 25 30 35 40 45 50 Lähde: tietotekniikan liiton, ohjelmistoyrittäjien ja Celkee OY:n tutkimus JOTU-2013 / K.Systä 02.12.2013 16

Miksi menee pieneen; toimittajanäkökulma Kommunikaation puute Eri näkemys projektin sisällöstä Aikataulun pettäminen Henkilövaihdokset projektissa Laadun pettäminen Budjetin pettäminen Ei kriisejä Ongelmat henkilökemioissa Hinnoittelumallista johtuvat syyt Sopimuksesta aiheutuvat syyt Yritysjärjestelyt 0 5 10 15 20 25 Lähde: tietotekniikan liiton, ohjelmistoyrittäjien ja Celkee OY:n tutkimus JOTU-2013 / K.Systä 02.12.2013 17

Kertausluento Kirjan luku 1 Ohjelmistotuotannon yleiset haasteet Ohjelmistotyypit Kirjan luku 2 Projektimallit Yleiset periaatteet, asiakkaan kannalta Vaatimusten käsittely (kirjan luku 3) Asiakasrooleista Käytettävyyden merkityksestä Tiedon mallintamisesta (kirjan luku 10) Laadunvarmistuksesta Projektitoiminnasta Ohjelmistolisensseistä 02.12.2013 JOTU-2013 / K.Systä 18

Ohjelmistoprojekti on muutokseen reagoimista 19 02.12.2013 JOTU-2013 / K.Systä

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) Tämä kurssi on suunniteltu (myös) tuleville asiakkaille 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 20 02.12.2013 JOTU-2013 / K.Systä

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) Tämä kurssi on suunniteltu (myös) tuleville asiakkaille 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 21 02.12.2013 JOTU-2013 / K.Systä

Kehitysprosessit: erilaisia variaatioita samasta teemasta Testaus, laadunvarmistus Asiakkaan ongelma asiakasvaatimukset Määrittely Suunnittelu ohjelmistovaatimukset, määrittely tekniset vaatimukset, suunnittelu Toteutus asiakastoimitus Seuraava versio Hyväksymistestaus JOTU-2013 / K.Systä 02.12.2013 22

Vesiputous Managing the development of Large Software Systems [Royce 1970] Järjestelmävaatimukset Ohjelmistovaatimukset Ohjelmistonmäärittely Ohjelmistonsuunnittelu Ohjelmointi Testaus Käyttö 02.12.2013 JOTU-2013 / K.Systä 23

Protoilu Usein tarpeen jotta voidaan Testata uutta käyttöliittymäideaa Kokeilla uutta teknologiaa Varmistaa suorituskyky Pois heitettävä (throw-away) proto Ei ole tarkoitus käyttää tuotteessa Evoluutioproto Osaa käytetään Huomion arvoista Usein on tulee paine viedä tuotteeseen Mikä on oleellista Sukulainen demoilulle 02.12.2013 JOTU-2013 / K.Systä 24

Iteratiivinen - taustaa Oppimisen tehokas hyödyntäminen Pitkässä projektissa kestää kauan määrittelystä toteutukseen Riskien hallinnan monimutkaisuus & ennalta-arvaamattomuus Vaatimusten tarkentuminen ja myöhäinen asiakaspalaute Testauksen myöhäinen aloittaminen Itsepetos Kärsimättömät asiakkaat 02.12.2013 JOTU-2013 / K.Systä 25

Esimerkkejä (Spiral model) 02.12.2013 JOTU-2013 / K.Systä 26

Rational Unified Process Booch et all 1998 02.12.2013 JOTU-2013 / K.Systä 27

Ketterät http://www.agilealliance.com/home Vain oleellinen on tärkeää Asiakas- ja tuotekeskeisyys Kehittäminen tapahtuu asiakkaan kanssa yhteistyössä Valmius jatkuvaan muutokseen Iteratiivisuus Dokumentaation sijaan korostetaan henkilökohtaista kommunikaatiota kykyä demonstroida valmiita ominaisuuksia kykyä muuttaa toteutettua järjestelmää palautteen perusteella Osaamisen, ammattitaidon ja vastuuntunnon korostaminen Esimerkiksi extreme Programming (XP) test driven development (TDD) pariohjelmointi 02.12.2013 JOTU-2013 / K.Systä 28

työmäärä Esimerkki: SCRUM Sprintissä toteutettavat tehtävät, aika-arviot päivitetään päivittäin Daily Scrum Meeting: 15 min: Edistys edellisestä palaverista? Ovatko aika-arviosi kunnossa? Mitä teet seuraavaksi? Onko ongelmia näkyvissä? Sprint burndown chart: aika Sprint planning meeting: 4+4 tuntia: tuotteen omistaja esittelee Product backlogia Tiimi päättää, mihin voi sitoutua 30 päivän pyrähdys (sprint) tuotteen inkrementti Sprint Review Meeting (4 tuntia): Tiimi esittelee tuloksen omistajalle The Sprint Retrospective (3 tuntia): miten asiat saataisiin sujumaan paremmin seuraavassa pyrähdyksessä Requirements 02.12.2013 JOTU-2013 / K.Systä 29

Kertausluento Kirjan luku 1 Ohjelmistotuotannon yleiset haasteet Ohjelmistotyypit Kirjan luku 2 Projektimallit Yleiset periaatteet, asiakkaan kannalta Vaatimusten käsittely (kirjan luku 3) Asiakasrooleista Käytettävyyden merkityksestä Tiedon mallintamisesta (kirjan luku 10) Laadunvarmistuksesta Projektitoiminnasta Ohjelmistolisensseistä 02.12.2013 JOTU-2013 / K.Systä 30

Asiakasvaatimuksista tuotteeseen asiakasvaatimukset Määrittely Suunnittelu& toteutus ohjelmistovaatimukset 02.12.2013 JOTU-2013 / K.Systä 31

Erilaisia vaatimuksia - esimerkki Asiakasvaatimus tyypillisesti asiakkaan ongelma, jolle toivotaan ratkaisua: tuotetaan mahdollisimman virheettömiä dokumentteja. Ominaisuus, feature jokin asiakkaan kannalta mielekäs kokonaisuus ohjelmiston toiminnallisuudesta: tuki oikeinkirjoituksen tarkastamiselle. Ohjelman toiminto yksittäinen ohjelmistolla tehtävä asia: tarkasta oikeinkirjoitus, ehdota korjausta, korjaa automaattisesti... Tekniset vaatimukset miten ohjelmisto toteutetaan: tiedostopuskuri, dialogin toteutus,... Kannattaa huomata, että luokittelu ei ole mitenkään itsestään selvä. Asiakasvaatimukset Ohjelmistovaatimukset 02.12.2013 JOTU-2013 / K.Systä 32

Vaatimukset vs. rajoitteet Toiminnallinen vaatimus (functional requirement), esimerkiksi ohjelmassa on tuki oikeinkirjoituksen tarkastamiselle. Ei-toiminnallinen vaatimus (non-functional requirement), esimerkiksi ohjelman käyttöliittymä on UI-tyyliopas mukainen tai ohjelmiston asennus saa käyttää korkeintaan 5MB levytilaa. Reunaehdot (constraints), esimerkiksi ohjelmisto on toteutettava Windows-ympäristöön C++-kielellä. 02.12.2013 JOTU-2013 / K.Systä 33

Hyvän speksin/vaatimuksen ominaisuuksia täydellisyys: kaikki tarpeellinen, ei mitään turhaa tarkkuus virheettömyys ymmärrettävyys testattavuus: miten voidaan "mitata", onko vaatimus täytetty jäljitettävyys: mistä vaatimus on peräisin, miten tärkeä se on sama asia vain yhdessä paikassa (ei redundanssia) (?) 02.12.2013 JOTU-2013 / K.Systä 34

Esimerkkejä Järjestelmän käytettävissä on 64k-tavun muisti. Luokalla voi siis olla vain yksi luokanvalvoja? Jos kuukauden toteutunut myynti alittaa tavoitteet, tulostetaan raportti, ellei toteutuneen myynnin ja tavoitteen ero ole vähemmän kuin puolet edellisen kuukauden tavoitteen ja toteutuneen myynnin erosta, tai toteutunut myynti alittaa tavoitteen alle 5%. Varaston kiertonopeus kasvaa. Ilmoituksen on oltava kuvaruudulla 300ms kuluessa hälytyksen tapahtumisesta. Suihkumoottoreita ei saa kytkeä pakille ellei kone ole kentällä. Suihkumoottoreita ei saa kytkeä pakille ellei nokkapyörä pyöri tai nopeus ole nolla. 02.12.2013 JOTU-2013 / K.Systä 35

02.12.2013 JOTU-2013 / K.Systä 36 Käyttötapauskaavio, versio 1 Dipparekisteri Lisää uusi opiskelija Lisää uusi kenttä Ohjaaja Etsi ehdot täyttävät opiskelijat tee palaverimuisti o kirjoita lausunto Pohja järjestelmän hahmottamiselle ja siitä keskustelemiselle

02.12.2013 JOTU-2013 / K.Systä 37 Käyttötapauskaavio, versio 2 Dipparekisteri Lisää uusi opiskelija Lisää uusi kenttä Ohjaaja Etsi ehdot täyttävät opiskelijat tee palaverimuisti o lisää/poista ohjaaja kirjoita lausunto Laitoksen johtaja tarkastele tilastoja

02.12.2013 JOTU-2013 / K.Systä 38 Käyttötapauksen kuvaaminen UML ei standardoi mitenkään esitystapaa, eikä oikeastaan juuri muutakaan niihin liittyvää => paljon erilaisia tulkintoja Käyttötapauksen sisältö voidaan kuvata esimerkiksi: Käyttötapauksen nimi: Kuvaava nimi Osallistujat: Mitkä aktorit osallistuvat Tuloehdot: Mitkä ehdot ovat voimassa, kun käyttötapaus aloitetaan Kuvaus: Epäformaali, voidaan käyttää myös sekvenssikaavioita Poikkeukset: Poikkeustilanteet (mainitaan myös kuvauksessa) Lopputulos: Mitkä ehdot ovat voimassa, kun käyttötapaus lopetetaan Muut vaatimukset: käyttötapaukseen liittyvät ei-toiminnalliset vaatimukset

Käyttäjätarina (user story) Ketterissä menetelmissä yleisesti käytetty termi. Muutamaan lauseeseen typistetty "käyttötapaus" Tarinasta selviää: rooli (aktori) mitä tehdään ja yleensä mitä lisäarvoa tekeminen tuottaa käyttäjälle (paitsi jos tämä on kuitenkin ilmeistä) Esimerkiksi: Kurssin vastuuhenkilönä pystyn tekemään kaikki yhden kurssin luentosalivaraukset yhdellä varausoperaatiolla (silloin kun luentoajat ovat koko kurssin ajan samoina viikonpäivinä samaan kellonaikaan). 02.12.2013 JOTU-2013 / K.Systä 39

Kertausluento Kirjan luku 1 Ohjelmistotuotannon yleiset haasteet Ohjelmistotyypit Kirjan luku 2 Projektimallit Yleiset periaatteet, asiakkaan kannalta Vaatimusten käsittely (kirjan luku 3) Asiakasrooleista Käytettävyyden merkityksestä Tiedon mallintamisesta (kirjan luku 10) Laadunvarmistuksesta Projektitoiminnasta Ohjelmistolisensseistä 02.12.2013 JOTU-2013 / K.Systä 40

Tietojärjestelmän rakentaminen Liiketoimintastrategia Strategiset tavoitteet Mittaus ja analysointi Järjestelmävaatimukset Tietojärjestelmätoimitus Käyttöönotto ja hyväksyminen Ylläpito Mukailtu lähteestä: Timo Koivisto: Tietojärjestelmätoimituksen jälkiseuranta, Systeemityö 3/2006 02.12.2013 JOTU-2013 / K.Systä 41

Toimittaja tutkimus tarjous tarjouspyyntö tarjous määrittely määrittely toteutus testaus käyttöönotto käyttöönotto Kunnon määrittely ensin + On selkeä sopimus +Tiedetään etukäteen mitä saadaan + Kun on etukäteen mietitty ei matkan varrella tehdä turhaa + Riitatilanteissa tuomareilla on helppoa - Muutosten tekeminen vaikeaa - Voiko määrittelyä tehdä kunnolla? Asiakas Toimittaja Tehdään yhdessä iteratiivisesti + voidaan yhdessä oppia * vaatii molemminpuolista sitoutumista ja luottamusta tutkimus tarjous määr. tot test demo tot test demo tot test demo tot test käyt.otto määr. demo demo demo käyt.otto tarjous tarjouspyyntö Demo tarkoittaa yhdessä käyttäjän kanssa tehtävää uudelleen 02.12.2013 JOTU-2013 / K.Systä pohdintaa. 42 Asiakas

Monitoimittajaprojektit Tarvittavaa järjestelmää rakentaa usein monen toimijan verkosto Koska projekti on liian suuri yhdelle, tai Tarvitaan monenlaista osaamista, tai Kilpailutus tai liiketoimintasyistä Haasteita Vastuun jakaminen (yksi toimittaja vastuussa kokonaisuudesta vaiko tilaaja) Rajapintojen määritteleminen tärkeä 02.12.2013 JOTU-2013 / K.Systä 43

Rajapinnat ja monitoimittajaverkostot Rajapinta on yleisin tapa toteuttaa työnjako projektin aikana Vaatii ylimääräistä vaivaa, mutta vaihtoehto on vielä kalliimpi Dokumentoitu ja erikseen hallittu rajapinta mahdollistaa uusien toimittajien käyttämisen lisäkomponentteihin Standardi (tai de-facto) rajapinta mahdollistaa valmiiden komponenttien käytön Toinen puoli asiasta vendor lock-in 02.12.2013 JOTU-2013 / K.Systä 44

Kertausluento Kirjan luku 1 Ohjelmistotuotannon yleiset haasteet Ohjelmistotyypit Kirjan luku 2 Projektimallit Yleiset periaatteet, asiakkaan kannalta Vaatimusten käsittely (kirjan luku 3) Asiakasrooleista Käytettävyyden merkityksestä Tiedon mallintamisesta (kirjan luku 10) Laadunvarmistuksesta Projektitoiminnasta Ohjelmistolisensseistä 02.12.2013 JOTU-2013 / K.Systä 45

Käytettävyydestä Käytettävyydestä voi maksaa joko paljon tai vähän. Jos haluaa maksaa paljon kuten VR kannattaa julkaista keskeneräisiä tuotteita, joita pitää korjata kiireellä ja jotka saavat asiakkaat valitsemaan muita vaihtoehtoja. Jos haluaa sijoittaa vähemmän ja tuottavammin, se pitää tehdä heti projektin alussa ja hiukan lisää arviointivaiheessa. Aapo Puskala VR:n käytettävyysarviossaan 02.12.2013 JOTU-2013 / K.Systä 46

Sidosryhmät 02.12.2013 JOTU-2013 / K.Systä 47

Käytettävyys ja käyttökokemus Käytettävyys (usability) Kuinka määritellyt käyttäjät voivat käyttää järjestelmää saavuttaakseen määritellyt tavoitteet tehokkaasti, tarkoituksenmukaisesti ja tyytyväisinä määritellyssä käyttökontekstissa (ISO 9241-210) Määritelmän mukaan mitataan siis speksejä vastaan Käyttäjäkokemus (user experience) Henkilön käsitys järjestelmän käytön tai odotetun käytön tarjoamasta arvosta tietyssä käyttökontekstissa. (Hassenzahl ja Tractinsky 2006 sekä ISO 9241-210 2010) 02.12.2013 JOTU-2013 / K.Systä 48

Kertausluento Kirjan luku 1 Ohjelmistotuotannon yleiset haasteet Ohjelmistotyypit Kirjan luku 2 Projektimallit Yleiset periaatteet, asiakkaan kannalta Vaatimusten käsittely (kirjan luku 3) Asiakasrooleista Käytettävyyden merkityksestä Tiedon/käsitteiden mallintamisesta (kirjan luku 10) Laadunvarmistuksesta Projektitoiminnasta Ohjelmistolisensseistä 02.12.2013 JOTU-2013 / K.Systä 49

Käsitteellinen mallintaminen (lainaus kurssin tietokantojen suunnittelu luentomateriaalista) Kuvataan maailmaa (kohdealue) siellä olevien käsitteiden, niiden ominaisuuksien ja suhteiden avulla. Näiden tilat voivat muuttua ajoittain tapahtumien vaikutuksesta. Ollaan kiinnostuneita maailman tilasta menneisyydessä, nyt ja tulevaisuudessa. Käsitteellinen malli = kohdealueen vääristymätön ja täydellinen esitys (, jossa mahdolliset toteutusnäkökohdat jätetään huomioimatta.) 02.12.2013 JOTU-2013 / K.Systä 50

Esitetään useimmiten graafisesti Oliokaavio Luokkakaavio (UML) ER-kaavio (entity-relationship kaavio) Tietoyhteyskaavio Käsitekaavio Kohdekaavio 02.12.2013 JOTU-2013 / K.Systä 51

Käsitekaavio (UML:n luokkakaavio) Nimi Ominaisuudet lkm lkm nimi Nimi Ominaisuudet Metodit Metodit 02.12.2013 JOTU-2013 / K.Systä 52

Esimerkki 02.12.2013 JOTU-2013 / K.Systä 53

Laatu ja laatujärjestelmä Termi laatu on omiaan herättämään tunneperäisiä reaktioita. Onko laatu virheettömyyttä, mitä on virheettömyys? Onko laadukkaiden osien summa laadukas? "Määritelmä" Tuotteen kyky täyttää asiakkaan kohtuulliset toiveet ja odotukset. Oikea tuote, oikea hinta, oikeaan aikaan. Laatu on välttämättä aina jossain määrin subjektiivista, so. riippuvainen käyttäjästä Objektiivinen laatu: tuote on siinä mielessä virheetön ja tarkoituksenmukainen, että se on määrittelynsä mukainen. Subjektiivinen laatu: tuote täyttää käyttäjänsä (ja asiakkaan) tuotteeseen kohdistamat odotukset. Eri käyttäjillä on erilaisia odotuksia. Laatujärjestelmä eli laadunhallintajärjestelmä määrittelee yrityksen toimintatavat. 02.12.2013 JOTU-2013 / K.Systä 54

Kertausluento Kirjan luku 1 Ohjelmistotuotannon yleiset haasteet Ohjelmistotyypit Kirjan luku 2 Projektimallit Yleiset periaatteet, asiakkaan kannalta Vaatimusten käsittely (kirjan luku 3) Asiakasrooleista Käytettävyyden merkityksestä Tiedon mallintamisesta (kirjan luku 10) Laadunvarmistuksesta Projektitoiminnasta Ohjelmistolisensseistä 02.12.2013 JOTU-2013 / K.Systä 55

Standardeja ISO9001 Tällä hetkellä käytännössä tärkein (ei silti kovin tärkeä?). ISO9001 standardi määrittelee tietyt puitteet laatujärjestelmän kehittämiseksi. Uusin versio vuonna 2008. CMMI SEI:n (Software Engineering Institute) perinteinen CMM-malli (Capability Maturity Model) määrittelee viisi kypsyystasoa. Kypsyystasomalli määrittelee asiat, joita kullakin tasolla on kehitettävä seuraavalle tasolle pääsemiseksi. Nykyisin mallin nimi on CMMI ja siitä on kaksi versiota staged representation: perinteinen CMM-malli continuous representation: vastaa ISO 15504-standardia SPICE (eli ISO 15504) Muita standardeja Laatupalkintokriteerit (www.sly.fi): vuoden 2009 voittaja Viking Line ITIL (~ISO 20000): palveluiden hallinta, yrityksen tietohallinto (Joel test) 02.12.2013 JOTU-2013 / K.Systä 56

Kertausluento Kirjan luku 1 Ohjelmistotuotannon yleiset haasteet Ohjelmistotyypit Kirjan luku 2 Projektimallit Yleiset periaatteet, asiakkaan kannalta Vaatimusten käsittely (kirjan luku 3) Asiakasrooleista Käytettävyyden merkityksestä Tiedon mallintamisesta (kirjan luku 10) Laadunvarmistuksesta Projektitoiminnasta Ohjelmistolisensseistä 02.12.2013 JOTU-2013 / K.Systä 57

Kiva löytö: (Ken Schwaber: Agile project managemet) Far from agreement Anarchy Complicated Complex Close to agreement Simple Complicated Close to certainty Far from certainty 02.12.2013 JOTU-2013 / K.Systä 58

Kustannukset Mahdoton alue Projektisuunnittelun haaste Mahdoton alue Kalenteriaika 02.12.2013 JOTU-2013 / K.Systä 59

Projektin suunnittelu Hyvin suunniteltu on puoliksi tehty Jokainen tietää omat vastuunsa projektissa Jokainen tuntee projektin tavoitteet Tiedetään, kuinka projektia seurataan ja etenemisestä raportoidaan Pystytään vertaamaan edistymistä suunnitelmiin ja sitä kautta arvioimaan projektin lopetusajankohta ja lopullinen hinta Selkeät päätökset ja päättämisen paikat 02.12.2013 JOTU-2013 / K.Systä 60

Projektin puristajat 02.12.2013 JOTU-2013 / K.Systä 61

Projekti 02.12.2013 JOTU-2013 / K.Systä 62

Kertausluento Kirjan luku 1 Ohjelmistotuotannon yleiset haasteet Ohjelmistotyypit Kirjan luku 2 Projektimallit Yleiset periaatteet, asiakkaan kannalta Vaatimusten käsittely (kirjan luku 3) Asiakasrooleista Käytettävyyden merkityksestä Tiedon mallintamisesta (kirjan luku 10) Laadunvarmistuksesta Projektitoiminnasta Ohjelmistolisensseistä 02.12.2013 JOTU-2013 / K.Systä 63

IPR:n tyypit Patentti Vastoin kuin joskus väitetään ohjelmistokeksintöjä voi patentoida Copyright Voi suojata lähdekoodia, käyttöliittymää tai ohjelmointirajapintaa (API) Liikesalaisuus (Trade secret) 02.12.2013 JOTU-2013 / K.Systä 64

Hankinnan ja oston kysymyksiä sopimusta tehtäessä Kuuluuko kauppaan sekä binääri että lähdekoodi Entä dokumentointi Kellä on oikeus jatkokehittää? Mikä ovat komponentteina käytettyjen osien tai riippuvuuksien IPR- ja lisenssitilanne? Tulevat organisaatiouudistukset ja yrityskaupat 02.12.2013 JOTU-2013 / K.Systä 65

Koneenohjausjärjestelmien erityispiirteitä 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ää 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 02.12.2013 JOTU-2013 / K.Systä 66

Ohjelmistojen koko Embedded Software: Facts, Figures, and Future IEEE Computer, April 2009 (vol. 42 no. 4) 02.12.2013 JOTU-2013 / K.Systä 67

Ohjelmistojen koko Embedded Software: Facts, Figures, and Future IEEE Computer, April 2009 (vol. 42 no. 4) 02.12.2013 JOTU-2013 / K.Systä 68

Koodia on paljon 02.12.2013 JOTU-2013 / K.Systä 69

Nykyajan elämää 02.12.2013 JOTU-2013 / K.Systä 70

No mitäs opiskella tämän jälkeen? TIE-21300 Ohjelmistoarkkitehtuurit TIE-21200 Ohjelmistojen testaus JOTU TIE-21100 Johdatus tietokantoihin TIE-21100 Ohjelmistot. menetelmät TIE-41106 User interface design TLO-35250 Datan ja inform, hallinta TIE-13100 Tietotekn. projektityö TLO-35200 Liiket. ja tietoj yhteensov. 02.12.2013 JOTU-2013 / K.Systä 71