Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

Samankaltaiset tiedostot
Ohjelmistoprosessit ja ohjelmistojen laatu kevät Suunnitelmakeskeiset prosessit (lukuisia lähteitä)

Ohjelmistoprosessit ja ohjelmistojen laatu kevät 2009

2. Ohjelmistotuotantoprosessi

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

Ohjelmistotekniikka - Luento 2

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

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistojen mallintaminen. Luento 11, 7.12.

7. Iteratiivinen ohjelmistokehitys

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Oleelliset vaikeudet OT:ssa 1/2

Hajaantuminen. Juha Taina, Marko Salmenkivi ja Kjell Lemstöm, Ohjelmistotuotanto 30

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Juha Taina, Marko Salmenkivi ja Kjell Lemström,

Ohjelmistoprosessit ja ohjelmistojen laatu kevät 2009

Ohjelmistojen suunnittelu

Suunnitteluvaihe prosessissa

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

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

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

Ketteryys kokeilemalla. Leo Malila Kehittämispäällikkö, Kela

OT-s200: Prosessimallit

Dokumentointi ketterissä menetelmissä

Tietojärjestelmän osat

Ohjelemistotuotanto, syksy 1998 /Prosessi Prosessimallit

Koekysymyksiä. Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistojen suorituskyky

Johdantoluento. Ohjelmien ylläpito

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

PROJEKTINHALLINTA. Käyttäjälähtöinen suunnittelu

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Tapahtuipa Testaajalle...

Kansallinen digitaalinen kirjasto Käyttöliittymä Finna Aki Lassila / Kehittämispäällikkö / Kirjastoverkkopalvelut

Käytettävyyden huomiointi ohjelmisto prosessissa testausta lisäämällä

1. Johdanto. Ohjelmistotuotannon piirteitä

ITK130 Ohjelmistoprosessi

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

Ohjelmistojen mallintaminen, mallintaminen ja UML

Verkkopokerijärjestelmä. Loppuraportti Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

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

Testauksen tuki nopealle tuotekehitykselle. Antti Jääskeläinen Matti Vuori

Projektin suunnittelu

Liite 1: KualiKSB skenaariot ja PoC tulokset. 1. Palvelun kehittäjän näkökulma. KualiKSB. Sivu 1. Tilanne Vaatimus Ongelma jos vaatimus ei toteudu

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

Miten 333 organisaatiota voi kehittää yhtä yhteistä digitaalista palvelua ja vielä kuunnella kaikkien asiakkaita?

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

Ohjelmistoprojektien hallinta Vaihejakomallit

Ketterien periaatteiden merkitys projektityössä

Tarkastusten rakenne. 10. Tarkastukset. Tuotoksen tekijän rooli. Tarkastustiimi. Tarkastusprosessin vaiheet. Tarkastusprosessi

10. Tarkastukset. Tarkastusten rakenne

käyttötapaukset mod. testaus

IT2015 EKT ERITYISEHTOJA OHJELMISTOJEN TOIMITUKSISTA KETTERIEN MENETELMIEN PROJEKTEILLA LUONNOS

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

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi

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

TIE Ohjelmistojen suunnittelu. Luento 2: protot sun muut

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Ketterä vaatimustenhallinta

Projektityö

1. Johdanto. Ohjelmistotuotannon piirteitä

ADE Oy Hämeen valtatie TURKU. Tuotekonfigurointi. ADE Oy Ly Tunnus:

Projektisuunnitelma. (välipalautukseen muokattu versio) Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

Harjoitustyö Case - HelpDesk

Projektityö

Onnistunut ohjelmistoprojekti

1. Johdanto. Ohjelmistotuotannon piirteitä

1. Johdanto. Ohjelmistotuotannon piirteitä. Ohjelmisto ja järjestelmä. Osajärjestelmät ja käyttäjät. Järjestelmän ja ohjelmiston laadinta

IT2015 EKT-ehtojen käyttö

Projektisuunnitelma Nero-ryhmä

1. Johdanto. Ohjelmistotuotannon piirteitä. Ohjelmisto ja järjestelmä. Osajärjestelmät ja käyttäjät. Järjestelmän ja ohjelmiston laadinta

Yhteisön kehitystyöhön osallistumisen mahdollisuudet ja mallit

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

Projektisuunnitelma. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Avoimen lähdekoodin ohjelmistot julkisessa hallinnossa

Kooste kotitehtävien vastauksista. Kotitehtävä 6 - Ylläpito- ja kehittämismalli

Ohjelmistojen mallintaminen. Matti Luukkainen

Tutkittua tietoa. Tutkittua tietoa 1

Ohjelmiston toteutussuunnitelma

Verifiointi ja validointi

Yksikkötestaus. import org.junit.test; public class LaskinTest public void testlaskimenluonti() { Laskin laskin = new Laskin(); } }

Määrittelyvaihe. Projektinhallinta

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

1. Johdanto. Ohjelmistotuotannon piirteitä

Käyttövaltuushallinnan hyödyt tehokkaasti käyttöön. Johanna Lampikoski, RM5 Software Juha Arjonranta, TeliaSonera Finland

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

JULKISTEN PALVELUJEN ELINKAARI; HYVÄ PALVELU EILEN, TÄNÄÄN, HUOMENNA MIHIN PALVELUT OVAT MENOSSA? Lauri Helenius, Solita Oy

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

Testauksen hallinta Testaustyökalut Luento 7 Antti-Pekka Tuovinen

Muistitko soittaa asiakkaallesi?

Good Minton QA Raportti Iteraatio 1 Sulkapalloliiton Kilpailujärjestelmä

Projektinhallinta SFS-ISO mukaan

Kansallinen ASPAtietojärjestelmä

Ohjelmistotuotanto

Järjestelmäarkkitehtuuri (TK081702) Web Services. Web Services

UCOT-Sovellusprojekti. Testausraportti

PROSESSIT JA LAATU PERSONAL SOFTWARE PROCESS. Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Prosessit ja laatu. Laadun vaikutusketju

Transkriptio:

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita 581259 Ohjelmistotuotanto 378

Lemström, 2006-2011 581259 Ohjelmistotuotanto Kiitos Tuomolle kuvasta 379

Ohjelmistotuotannon perustehtävät projektinhallinta: kuka tekee, milloin tehdään, mitä huomioidaan tehdessä ongelman määrittely: mitä tehdään ohjelmistosuunnittelu: miten tehdään ohjelmiston toteutus: tehdään verifiointi ja validointi: varmistetaan, että tehdään se mitä pitää tehdä ylläpito: pidetään ohjelmisto käyttökelpoisena 581259 Ohjelmistotuotanto 380

Perustehtävät Tehtäviä ei välttämättä suoriteta em. järjestyksessä eikä edes peräkkäin Ohjelmistotuotannossa on tarvetta erilaisille prosesseille ja prosessimalleille Vaikka jokainen osa-alue on tärkeä, ehkä tärkein on projektinhallinta Suunnittelu ei ala tuotteesta, vaan prosessista Ilman suunnittelua ei synny laadukasta tuotetta 581259 Ohjelmistotuotanto 381

Suunnitelmakeskeiset prosessit Ennen ketteriä prosessimalleja kehitettyjä prosesseja kutsutaan suunnitelmakeskeisiksi Tehdään paljon valmistelevaa työtä ennen toteutusta Vesiputousmalli ja V-malli ovat lineaarisia suunnitelmakeskeisiä malleja Suunnitelmakeskeisyys on eri asia kuin lineaarisuus On olemassa iteratiivisia ja suunnitelmakeskeisiä malleja, kuten spiraalimalli 581259 Ohjelmistotuotanto 382

Vesiputousmalli Lineaariset vaiheet. Edellisen vaiheen tulos on seuraavan vaiheen syöte. Nykyisin mukana jonkin verran iteratiivisuutta. Perustuu huolelliseen dokumentaatioon ja tuotosten tarkastamiseen Selkeä ja helposti omaksuttava. Teoria- ja työkalutuki. Toimiva laadunvarmistus ja prosessin parannus. Ei vaadi projektin osallistujilta erityistaitoja. Sopii jos jatkuva ryhmätyö ei miellytä. Sopii hierarkkisiin organisaatioihin. Selkeän ja ymmärrettävä kustannusarvio jo projektin alussa. Vahinko vaan, että se voi heittää jopa 4x verrattuna todellisuuteen Kiireisen asiakkaan ei tarvitse osallistua projektityöhön 581259 Ohjelmistotuotanto 383

Vesiputousmallin haitat Vaatimukset eivät saa muuttua Asiakas näkee valmista vasta projektin päättyessä Aikataulun lipsuessa testaus kärsii Dokumentointiin ja tarkastuksiin turhaudutaan helposti Malli ei suosi luovuutta Väärille urille joutuneen projektin saattaminen oikeaan suuntaan on vaikeaa Myöhässä olevaa projektia on vaikeaa saada takaisin aikatauluun Iso osa vesiputousmallin mukaisista projekteista epäonnistuu tästä syystä: projektit eivät valmistu aikataulussa 581259 Ohjelmistotuotanto 384

V-malli Puhdasta vesiputousmallia kehittyneempi lineaarinen malli, joka yleistyi 1990-luvun alkupuolella V: Suunnittelu ja toteutus + Testaus Suunnittelu- ja toteutusvaiheessa määritellään vastaavan testausvaiheen testejä Vaatimusten kartoitus -> Hyväksymistestit Vaatimusten analyysi -> Järjestelmätestit Arkkitehtuurisuunnittelu -> Integrointitestit Komponenttisuunnittelu -> Komponenttitestit Koodaus ja yksikkötestaus 581259 Ohjelmistotuotanto 385

Iteratiiviset ja IID prosessit Iteratiivisia prosesseja oli käytössä jo 1960-luvulla Jokainen iteraatio on pieni projekti, jossa ovat mukana ohjelmistotuotannon perustehtävät Ohjelmiston elinkaari muodostuu peräkkäisistä iteraatioista Lisäävässä ohjelmistokehityksessä (incremental development) tuotteeseen lisätään sykleittäin uusia ominaisuuksia IID (iterative and incremental development) Kaikki nykyiset ketterät prosessit ovat IID-variantteja 581259 Ohjelmistotuotanto 386

Julkaisut Iteraation tuloksena saadaan julkaisu, lopullisen järjestelmän toimiva osajoukko (vrt. prototyyppi) Kaikki julkaisut eivät ole julkisia eli loppukäyttäjälle tarkoitettuja: sisäiset julkaisut ovat kehitystiimin ja asiakkaan käytössä Nykyisin kehitystyö jatkuu yleensä tuotteen elinkaaren ajan: tuotteesta tehdään useita julkisia julkaisuja Jos projektissa on monta kehitystiimiä, niin julkaisuun integroidaan kaikkien kehitystiimien tuotokset 581259 Ohjelmistotuotanto 387

Iteraation pituus IID ei määrittele iteraation pituutta, mutta moderneissa iteratiivisissa prosessimalleissa iteraation suositeltava pituus on yhdestä kuuteen viikkoa. Lyhyt sykli tarkoittaa nopeaa reagointia muutokseen. Toisaalta se myös tarkoittaa, että tehtävä ohjelmisto on ositettava hyvin pieniin toteutettaviin osiin. Iteraatiossa perustehtävien painotukset vaihtelevat sen mukaan, missä kohdassa tuotteen elinkaarta ollaan. IID:ssa varaudutaan muuttuviin vaatimuksiin, mutta ei koska tahansa. Muutoksiin varaudutaan iteraatioiden välillä, ei niiden sisällä. 581259 Ohjelmistotuotanto 388

Riskilähtöinen ja asiakaslähtöinen iteraatiosuunnittelu Iteraatiossa toteutettavat ominaisuudet voidaan valita riskilähtöisesti (risk-driven) tai asiakaslähtöisesti (client-driven). Riskilähtöisyys: iteraatioon valitaan ne tehtävät, jotka ovat vaikeimmat ja riskialtteimmat toteuttaa Asiakaslähtöisyys: iteraatioon valitaan ne tehtävät, jotka asiakas asettaa korkeimmalle prioriteetille Riskilähtöinen kehitystyö palkitaan projektissa vasta myöhemmin Asiakas ei välttämättä pidä lähestymistavasta, koska toiminnallisuuden parantuminen ei yhtä suoraviivaista Asiakaslähtöinen kehitystyö ei saisi tapahtua arkkitehtuurisuunnittelun kustannuksella 581259 Ohjelmistotuotanto 389

Timeboxing IID:ssa iteraation kesto kiinnitetään etukäteen: timeboxing-tekniikka Ketterät prosessimallit vähintään suosittelevat vahvasti tai vaativat timeboxing-tekniikan käyttöä Kestoaika ei jousta Tiimi itse voi vähentää iteraatiossa tehtäviä, jos timeboxing ei muuten toteudu Kaikkien syklien pituuden ei tarvitse olla sama Iteraation käynnistymisen jälkeen ulkoiset sidosryhmät eivät vaikuta syklin sisältöön. Jos iteraatio on menossa todella pahasti metsään, niin se voidaan keskeyttää ja aloittaa uusi iteraatio etuajassa 581259 Ohjelmistotuotanto 390

IID ja vaatimusmäärittely Useimmissa projekteissa suurin osa vaatimuksista on melko stabiileja: nämä tunnistetaan (ja toteutetaan) varhaisissa sykleissä Aina asiakas ei osaa kertoa, mitä tarvitaan tai ongelmakenttä muuttuu. Nämä tunnistetaan ja toteutetaan projektin edetessä. Laatutekijöihin liittyvät vaatimukset pitäisi tunnistaa mahdollisimman aikaisin arkkitehtuurivalinnat räätälöidään näiden tarpeiden mukaan 581259 Ohjelmistotuotanto 391

IID ja aikataulu IID:n luonteen takia varsinkin projektin alussa on vaikea tehdä edes alustavaa aikataulua Jo muutaman iteraation jälkeen käsitys on paljon helpompi muodostaa Suunnitelmakeskeisten projektien alussa tehdyt aikataulut ovat myös hyvin alustavia Ongelman ratkaisu on siirtää yleisen aikataulun tekoa projektin alusta muutaman iteraation päähän ja tehdä yksityiskohtaista aikataulusuunnittelua korkeintaan muutaman iteraation verran eteenpäin. 581259 Ohjelmistotuotanto 392

Ketterät vs. suunnitelmakeskeiset Ketterien vs. suunnitelmakeskeisten prosessien sopivuuteen vaikuttavat Millaista järjestelmää ollaan kehittämässä: kuinka iso projekti kuinka muuttuvat vaatimukset kuinka pian tarvitaan toimiva versio kuinka paljon tarvitaan dokumentaatiota kuinka muodollinen laadunvarmistus tarpeen Kehittäjätiimin kokemus ja taidot Kehittäjäorganisaation organisaatiokulttuuri 581259 Ohjelmistotuotanto 393

Prototyyppimalli Ensimmäisenä muuttuvien vaatimusten ongelmaan pyrittiin vastaamaan prototyyppimallilla Prototyyppi on toteutus, jossa ulkoiset liittymät ovat kunnossa mutta sisäinen logiikka on vajaa Paperiprototyyppi tai suoritettava ohjelmisto Loppukäyttäjät antavat palautetta prototyypistä Varsinaisen ohjelmiston kehitystyö alkaa, kun loppukäyttäjät ovat tyytyväisiä prototyyppiin Tällä hetkellä tehdään enemmän iteratiivista ohjelmistokehitystä, mutta prototyyppejäkin käytetään Prototyyppien käytön voi yhdistää eri prosessimalleihin Toimii parhaiten pienillä (osa)järjestelmillä 581259 Ohjelmistotuotanto 394

Prototyyppien käyttö Ehdoton vaatimus on prototyyppien teon helppous Käytännössä on voitava käyttää mahdollisimman paljon uudelleenkäytettäviä komponentteja Sopiva sovelluskehitin auttaa samoin prototyyppien teossa Prototyypeissä keskitytään ulkoisiin rajapintoihin Erikoistapaus: käyttöliittymäpohjaiset prosessimallit Toiminnallisuuden sijaan suunnittelu aloitetaan käyttöliittymästä Asiakkaalle tehdään kokeiltavaksi yksi tai useampi käyttöliittymämalli, jonka käytettävyyttä tämä arvioi 581259 Ohjelmistotuotanto 395

Plussia ja miinuksia Asiakkaalle pelkkää tekstidokumentaatiota selkeämpi kuva ohjelmiston toiminnasta ja valmiin tuotteen malli Prototyypit selventävät rajapintojen käyttöä Prototyyppien avulla ongelmakentästä saattaa löytyä käsittelemättömiä alueita Lisäkustannukset, kustannusarvion ja aikataulun teon vaikeus Miksi proto ei ole luovutettava tuote? Koska prototyypeissä oiotaan toteutuksessa - se ei täytä lopulliselta tuotteelta vaadittavaa laatua Joskus on vaikea sanoa, milloin on tehty riittävästi protoja ja on aika ruveta varsinaiseen kehitystyöhön Vaatii hyvät työkalut ja paljon uudelleenkäytettävää koodia 581259 Ohjelmistotuotanto 396

Tulevaisuuden haasteita Epäyhtenäisyyden haaste haaste Toimitusajan haaste Luottamuksen Haasteet eivät ole riippumattomia: voivat olla jopa keskenään ristiriidassa 581259 Ohjelmistotuotanto 397

Epäyhtenäisyyden haaste Ohjelmistopohjaisten järjestelmien täytyy toimia hyvin erilaisissa ympäristöissä eri järjestelmien kanssa Ohjelmistojen pitää myös toimia vanhojen järjestelmien kanssa Vanhoihin järjestelmiin täytyy usein kehittää uutta toiminnallisuutta Vanhoja järjestelmiä tekohengitetään 581259 Ohjelmistotuotanto 398

Toimitusajan haaste Ohjelmistojen teko ohjelmistotuotannon menetelmin vaatii paljon aikaa Aika on kallis resurssi Liiketoiminnassa täytyy olla dynaaminen ja valmis muutoksiin Ohjelmistojen pitäisi mukautua muutoksiin nopeasti, mutta laatu ei saisi kärsiä 581259 Ohjelmistotuotanto 399

Luottamuksen haaste Ohjelmistot vaikuttavat jatkuvasti enemmän elämäämme Sitä enemmän ihmisten pitäisi voida luottaa niihin Laadunhallinnan kehittäminen siksi jatkuvana haasteena 581259 Ohjelmistotuotanto 400