Ohjelmistoposesseista

Samankaltaiset tiedostot
Johdatus ohjelmistotuotantoon

Harjoitukset - muistutus

Johdatus ohjelmistotuotantoon

Projektin vaiheet

Lyhyt johdatus ketterään testaukseen

Kuka käyttää?

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ville Isomöttönen. Agile. Jyväskylän Yliopisto Sivu 1 Tietotekniikan laitos

Ohjelmistotekniikka - Luento 2

Johdatus ohjelmistotuotantoon

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

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

Tutkittua tietoa. Tutkittua tietoa 1

Agile. Jyväskylän Yliopisto Sivu 1 Tietotekniikan laitos

Ohjelmistoarkkitehtuurit Kevät 2016 Johdantoa

Projektityö

Projektitoiminta JOTU JOTU2015/K.Systä 1

PROJEKTI- PÄÄLLIKÖSTÄ PRODUCT OWNERIKSI MEERI CEDERSTRÖM

Arkkitehtuuritietoisku. eli mitä aina olet halunnut tietää arkkitehtuureista, muttet ole uskaltanut kysyä

Ohjelmistoprosessit ja ohjelmistojen laatu kevät 2009

2. Ohjelmistotuotantoprosessi

Globaalisti Hajautettu Ohjelmistokehitys Mitä, Miksi & Miten? Maria Paasivaara

Testauksen hallintaa teekkareille (ja muille kiinnostuneille) Arto Stenberg

Ohjelmistotuotanto, prosessit Syksy Ohjelmistotuotantoprosessi. Prosessimalli. Prosessimallien perustehtävät. Prosessimallin vaihejako

Testaaminen ohjelmiston kehitysprosessin aikana

OTM viikoilla 18 ja 19

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

Ohjelmistoprojektien hallinta Vaihejakomallit

Ketteryys pähkinänkuoressa. Kokopäivän Scrum-kurssin sisältö tislattuna ja tiivistettynä kolmeen varttiin

Prosessimalli. 2. Ohjelmistotuotantoprosessi. Prosessimallin vaihejako. Prosessimallien perustehtävät. Ohjelmiston suunnittelu. Vaatimusmäärittely

Scrum is Not Enough. Scrum ei riitä. Ari Tanninen & Marko Taipale. Nääsvillen oliopäivä 2009 Tampereen teknillinen yliopisto 9.12.

Standardi IEC Ohjelmisto

7.4 Variability management

Ohjelmistoprojekteista. Datanomiopiskelijat 2.vuosi

statbeatmobile PROJECT REVIEW iteration 1

Projektityö

Johdatus ohjelmistotuotantoon

ITK130 Ohjelmistoprosessi

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Tapahtuipa Testaajalle...

Laadukas vaatimustenhallinta. Pekka Mäkinen Copyright SoftQA Oy

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

Testausta vai määrittelyä? Hyväksymistestaus ja jatkuva integraatio ketterässä ohjelmistokehityksessä

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Ketterä vaatimustenhallinta

Scrumin käyttö ketterässä sovelluskehityksessä

RAIN RAKENTAMISEN INTEGRAATIOKYVYKKYYS

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Tietojärjestelmän osat

Ohjelmistotekniikka - Luento 3 Jouni Lappalainen

7. Iteratiivinen ohjelmistokehitys

Ketterät menetelmät ja julkinen hankinta

T Testiraportti - järjestelmätestaus

T Projektikatselmus

Ohjelmistoarkkitehtuurit. Syksy 2010

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

Johdantoluento. Ohjelmien ylläpito

Ohjelmistojen suunnittelu

Ohjelmistotekniikka - Luento 3

Koekysymyksiä. Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistojen suorituskyky

Ohjelmistotuotteen hallinnasta

Helia Ohjelmointitaito Tuomas Kaipainen Mermit Business Applications Oy Mermit Business Applications

Onnistunut Vaatimuspohjainen Testaus

Lakki. Lisää ot sik k o osoit t am alla. Nöyrästi vain lakki kourassa... Jussi Vänskä Espotel Oy. vierailuluentosarja OTM kurssi 2010

Ohjelmistoarkkitehtuurit. Syksy 2008

Test-Driven Development

Ohjelmistotekniikan menetelmät, kesä 2008

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

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistoarkkitehtuurit. Kevät

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Projektityö

T Software Architecture

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

Käyttäjäkeskeinen suunnittelu

Testauspäällikön tarinoita Arto Stenberg

BDD (behavior-driven development) suunnittelumenetelmän käyttö open source projektissa, case: SpecFlow/.NET.

Työkalut ohjelmistokehityksen tukena

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

Ohjelmiston testaus ja laatu. Testaustasot

Software engineering

Yrittäjäkasvatuksen polku - sivusto. Yksityiskohtainen suunnittelu Huhtikuu 2018

Test-Driven Development

Kontrollipolkujen määrä

Testausoppeja toimialavaihdoksesta

LYTH-CONS CONSISTENCY TRANSMITTER

Ohjelmistojen mallintaminen, kesä 2009

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Muutos mahdollisuutena Tuusula Anssi Tuulenmäki

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

Network to Get Work. Tehtäviä opiskelijoille Assignments for students.

T Tietojenkäsittelyopin ohjelmatyö. Testiraportti, vaihe T1. Tietokonegrafiikka-algoritmien visualisointi. Testiraportti, vaihe T1

Collaborative & Co-Creative Design in the Semogen -projects

Ohjelmistoarkkitehtuurit Kevät käytäntöjä

statbeatmobile FINAL PROJECT REVIEW

Transkriptio:

Ohjelmistoposesseista Luento nro 6, 23.9.2015 Kari Systä 28.9.2015 JOTU/K.Systä 1

Sisältöä Käytännön asioista kurssista Kertausta Ohjelmistoprosesseista 28.9.2015 JOTU/K.Systä 2

Kurssin tilannetta Asiakaspalaverit menneet hyvin. Ensiviikon (5.10 alkava) viikkoharjoituksiin oma läppäri mukaan! 28.9.2015 JOTU/K.Systä 3

Kertausta Navigointisuunta 28.9.2015 JOTU/K.Systä 4

0-* Oppimistapahtuma Luento 1 Opintokokonaisuus 1 1-* Opintojakso 0-* 1-* 1-* 0-* Esitieto -> 0-* Luennoija Viikkoharjoitus 0-* Yhteinen käsite opettaja? Assistentti Harjoitustyö 28.9.2015 JOTU/K.Systä 5

28.9.2015 JOTU/K.Systä 6

OHJELMISTOPROSESSEISTA 28.9.2015 JOTU/K.Systä 7

Auton valmistuksessa työn koordinointi on helppoa http://www.team-bhp.com/forum/indian-car-scene/83316- automotive-manufacturing-overview.html 28.9.2015 JOTU/K.Systä 8

SW development is Collaborative game http://alistair.cockburn.us/cooperative+game +manifesto+for+software+development Software development is a (series of) cooperative game(s), in which people use markers and props to inform, remind and inspire themselves and each other in getting to the next move in the game. The endpoint of the game is an operating software system; the residue of the game is a set of markers to inform and assist the players of the next game. The next game is the alteration or replacement of the system, or creation of a neighboring system. 28.9.2015 JOTU/K.Systä 9

Kyse on koordinoinnista ja kommunikoinnista 28.9.2015 JOTU/K.Systä 10

Kaksi ansaa Byrokratiakaaos Luova kaaos 28.9.2015 JOTU/K.Systä 11

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 28.9.2015 JOTU/K.Systä 12

Pelin joukkueet Kilpailija Asiakas Käyttäjä Johto Kehitystiimi Ottelu = projekti Alihankkija 28.9.2015 JOTU/K.Systä 13

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 14 28.9.2015 JOTU/K.Systä

Erilaisia projekteja - tuote Toimittaja määrittely toteutus testaus paketointi tutkimus myynti Asiakas 15 28.9.2015 JOTU/K.Systä

Erilaisia projekteja asiakaskohtainen Toimittaja tutkimus toteutus testaus tarjous määrittely käyttöönotto määrittely käyttöönotto tarjouspyyntö Asiakas 16 28.9.2015 JOTU/K.Systä

Erilaisia projekteja asiakaskohtainen Toimittaja Toimittaja tutkimus toteutus testaus Määrittely tarjous tarjous käyttöönotto käyttöönotto Määritelyn tilaus Asiakas Tarjouspyyntö tilaus 17 28.9.2015 JOTU/K.Systä

Erilaisia projekteja - tuote Toimittaja määrittely toteutus testaus paketointi tutkimus myynti Asiakas 18 28.9.2015 JOTU/K.Systä

Vesiputousmalli Määrittely Suunnittelu Toteutus Testaus 28.9.2015 JOTU/K.Systä 19

Royce, 1970 28.9.2015 JOTU/K.Systä 20

Tämä kulunut kuva on pakko näyttää 21 28.9.2015 JOTU/K.Systä

Miksi tuo ei toimi Oletus 1: kunnon vaatimukset saa tehtyä kun niihin vaan panostaa Mutta: asiakkaan tarpeet muuttuu projektin aikanakin Mutta: ohjelmisto on abstrakti kunnes sen näkee käytännössä Oletus 2: muutokset ovat pieniä Mutta: eivät ole (ja kohdistuvat juuri sinne minne ei pitänyt) Oletus 3: integrointi on vain palasten kokoon laittamista Mutta: komponenttien tekijät olivat vain ihmisiä Oletus 4: aikataulu pitää Oikeasti hyvin harvoin 28.9.2015 JOTU/K.Systä 22

Iteratiiviset, ketterät yms Toimittaja tutkimus tot tot tot tot tarjous määr. test demo test demo test demo test käyt.otto määr. demo demo demo käyt.otto tarjouspyyntö Asiakas tarjous Demo tarkoittaa yhdessä käyttäjän kanssa tehtävää uudelleen pohdintaa. 23 28.9.2015 JOTU/K.Systä

Ketterät prosessit ja menetelmä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 Scrum 24 28.9.2015 JOTU/K.Systä

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

Tarve/idea Esiselvitys unohdetaan Tehdään itse Teetetään Ostetaan Määritellään itse Tilataan määrittely Räätälöidään Tarjouskilpailu Määrittely Päätös Tarjouskilpailu Suunnittelu Toteutus Testaus 28.9.2015 JOTU/K.Systä 26

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/K.Systä 28.9.2015 27

Vaatimusten tyyppejä Toiminnallinen vaatimus (functional requirement), esimerkiksi ohjelmassa on tuki oikeinkirjoituksen tarkastamiselle. Ei-toiminnallinen vaatimus (non-functional requirement), esimerkiksi ohjelman käyttöliittymä on dokumentin WS-100, UI-tyyliopas mukainen. Reunaehdot (constraints), esimerkiksi ohjelmisto on toteutettava Windows-ympäristöön C++-kielellä. 28.9.2015 JOTU/K.Systä 28

Määrittely (Muistuksena!) Fred Brooks on yksi alamme tunnetuimpia asiantuntijoita. Hän julkaisi vuonna 1987 paljon huomiota saaneen artikkelinsa No Silver Bullet:Essence and Accidents of Software Engineering [Brooks 1987]. Siinä hän toteaa: The hardest single part of building a software system is deciding what to build. No other part of the conceptual work is as difficult in establishing the detailed technical requirements, including the interfaces to people, to machines, and to other software systems. No other part of the work so cripples the results if done wrong. No other part is more difficult to rectify later. Monet tutkimukset (ks. esim [Leffingwell ja Widrig 2003]) osoittavat, että ohjelmistoprojektien epäonnistumisen syyt juontavat juurensa yli 60-prosenttisesti huonoon vaatimustenkäsittelyyn. 28.9.2015 JOTU/K.Systä 29

Kaksi erilaista johtopäätöstä 1. Kannattaa käyttää alussa paljon aikaa vaatimusten miettimiseen ja kirjaamiseen ennen kuin kirjoittaa yhtäkään koodiriviä. 2. Vaatimukset tai ainakin ymmärrys niistä muuttuu projektin aikana kuitenkin. Joten parasta iteroida palanen kerrallaan. 28.9.2015 JOTU/K.Systä 30

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

Suunnittelu (Architecture design) Ohjelmiston tekniset ominaisuudet Ohjelmiston jako osiin Osien riippuvuuksien määrittely Osien rajapintojen määrittely Wikipedia: The software architecture of a system is the set of structures needed to reason about the system, which comprise software elements, relations among them, and properties of both. The term also refers to documentation of a system's "software architecture." Documenting software architecture facilitates communication between stakeholders, documents early decisions about high-level design, and allows reuse of design components and patterns between projects 28.9.2015 JOTU/K.Systä 32

Ohjelmistoarkkitehtuureja opetetaan erillisellä kurssilla OHJ-3200 Ohjelmistoarkkitehtuurit, periodit 3-4 2011-2012 Tavoitteet: Kurssin tavoitteena on antaa opiskelijoille yleiskuva ohjelmistoarkkitehtuureihin liittyvistä käsitteistä ja tekniikoista sekä valmiudet laadukkaiden ohjelmistojen rakentamiseen ja arviointiin. 28.9.2015 JOTU/K.Systä 33

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

Työn kulku tuotekehitysprojektissa (esimerkki) kehitystiimi 1) muutettavat kompone ntit Versionhallinta Työn tasks Change alla tasks tasks olevat komponentit 2) muutetut komponentit testing OK uusi "baseline" 3) palaute Koostaminen (build) & automaattiset testit "Sopiva kooste" "release candidate" Järjestelmätestaus testing OK julkaisu (release) build manager" testaajat 35 27.4.2009 JOTU/K.Systä 35

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

Testaus Testaus on virheiden etsimistä Virhe (error, mistake, bug) on poikkeama spesifikaatiosta. Johdonmukainen testaus ilman spesifikaatiota on siis mahdotonta, sillä lopputuloksen oikeellisuutta ei voida todeta. Debuggaus on puolestaan löydetyn virheen paikallistamista. Ohjelmissa arvioidaan yleensä olevan ohjelmoinnin jälkeen yksi virhe muutamaa kymmentä ohjelmariviä kohden. Jopa pitkään käytössä olleissa ohjelmissa arvioidaan yleensä olevan noin yksi virhe tuhatta ohjelmariviä kohden. On myös arvioitu, että noin 5 % ohjelmavirheistä on sellaisia, ettei niitä "koskaan" edes havaita, sillä vaikka virheellinen kohta suoritettaisiinkin 28.9.2015 JOTU/K.Systä 37

V-malli Määrittely Järjestelmätestaus Arkkitehtuurisuunnittelu Yksityiskohtainen suunnittelu Yksikkötestaus Integrointitestaus 28.9.2015 JOTU/K.Systä 38

Joitain testauksen termejä Testisuunnitelma: koska testataan, kuka testaa, mitä testataan; testitapaukset. Testipeti: ohjelmistorunko jonka avulla testejä on helppo suorittaa Testiautomaatio: testitapausten automaattinen suoritus ja tulosten vertailu Regressiotestaus: testataan vanhatkin ominaisuudet uudelleen uusien lisäämisen jälkeen. Kuormitustesti: kaatuuko systeemi kuorman alla. Luotettavuustesti: miten toipuu häiriötilanteista. Käytettävyystesti: miten loppukäyttäjä näkee järjestelmän. 28.9.2015 JOTU/K.Systä 39

Testauksen voi järjestää monella tavalla Esimerkkinä test-driven development Lisää testi OK Aja testi EI Lisää koodi Aja testi EI OK 28.9.2015 JOTU/K.Systä 40

Esimerkki oikeinkirjoituksen tarkistus Oikein ja väärin kirjoitettua OK Tarkistaako EI Lisää koodi Aja testi EI OK 28.9.2015 JOTU/K.Systä 41

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/K.Systä 28.9.2015 42

Hyväksymistestaus Saatiinko sitä mitä tilattiin? Asiakkaan rooli on suuri. 28.9.2015 JOTU/K.Systä 43

Miksi ketterä (agile)? Jatkuva näkyvyys (ei korjaa ongelmia, mutta tuo ne näkyväksi) Mahdollisuus muutoksiin Aiempi bisnesarvo Matalammat riskit 28.9.2015 JOTU/K.Systä 44

Agile -manifesti Helmikuu 2001 17 tekijää We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more. 28.9.2015 JOTU/K.Systä 45

Manifesti Suomeksi Me etsimme parempia keinoja ohjelmistojen kehittämiseen tekemällä sitä itse ja auttamalla siinä muita. Tässä työssämme olemme päätyneet arvostamaan Yksilöitä ja vuorovaikutusta enemmän kuin prosesseja ja työkaluja Toimivaa sovellusta enemmän kuin kokonaisvaltaista dokumentaatiota Asiakasyhteistyötä enemmän kuin sopimusneuvotteluita Muutokseen reagoimista enemmän kuin suunnitelman noudattamista. Vaikka oikeallakin puolella on arvoa, me arvostamme vasemmalla olevia asioita enemmän. 28.9.2015 JOTU/K.Systä 46

Scrum Ketterän ja iteratiivisen kehityksen prosessikehys Jeff Sutherland, John Scumniotales, and Jeff McKenna OOPSLA 95 28.9.2015 JOTU/K.Systä 47

Scrum-roolit Siat Scrum master Product owner Tiimin jäsenet Kanat Sidosryhmät (asiakas, myyjä ) Johtajat 28.9.2015 JOTU/K.Systä 48

Done -> 100% tehty Burndown -kaavio Velocity -> paljonko tehtävää voidaan yhteen sprinttiin saada mahtumaan Kaaviosta vähennetään tehtävän tunnit, jos tehtävä 100% valmis Jos tehtävä kasvaa, lisätään kaavioon tunteja 28.9.2015 JOTU/K.Systä 49

Timeboxing Projektin osittainen kiinteän mittainen aikasiivu, jolla on omat deadlinensä, vaihetuotteensa ja resurssinsa TB1 TB2 TB3 Riskinhallintametodi Nopea palaute Jäykistää vaatimustenhallintaa 28.9.2015 JOTU/K.Systä 50

Kompromissikolmio (Iron triangle) Ominaisuudet Aika Hinta 28.9.2015 JOTU/K.Systä 51

A p o t t i 28.9.2015 JOTU/K.Systä 52

Yhteenveto Prosessi tarkoittaa Kommunikointia Koordinointia (pelisääntöjä) Ei vaiheet ja tehtävät Määrittely, suunnittelu, toteutus, testaus, Vesiputous vs. ketterä 28.9.2015 JOTU/K.Systä 53