OT-s200: Prosessimallit

Samankaltaiset tiedostot
Ohjelemistotuotanto, syksy 1998 /Prosessi Prosessimallit

Ohjelmistoprosessi. Ohjelmistotuotanto. Yleiset ohjelmistotuotannon osatehtävät. Ohjelmistoprosessimalli. Vaihejaon ominaispiirteitä

Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

2. Ohjelmistotuotantoprosessi

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

ITK130 Ohjelmistoprosessi

Oleelliset vaikeudet OT:ssa 1/2

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmistojen mallinnus (OMa) - Johdatus ohjelmistotuotantoon Harri Laine 1

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

Ohjelmistojen suunnittelu

Ohjelmointitekniikka lyhyesti Survival Kit 1 Evtek KA ELINKAARIMALLEISTA

Tietojärjestelmän osat

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

Yhteenvetoa, pieniä laajennuksia, tulevaisuuden haasteita

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

Johdantoluento. Ohjelmien ylläpito

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

Software engineering

Projektityö

Projektisuunnitelma Nero-ryhmä

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

Käyttäjäkeskeinen suunnittelu

Ohjelmistoprojektien hallinta Vaihejakomallit

Uudelleenkäytön jako kahteen

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

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

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

58160 Ohjelmoinnin harjoitustyö

Juha Taina, Marko Salmenkivi ja Kjell Lemström,

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

Suunnitteluvaihe prosessissa

Ohjelmiston testaus ja laatu. Testaus käytettävyys

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Ohjelmiston toteutussuunnitelma

Ohjelmistojen mallintaminen, mallintaminen ja UML

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Projektin suunnittelu

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

Ylläpito. Ylläpito. Ylläpidon lajeja Ohjelmistotuotanto, syksy 1998 Ylläpito

ABB Drives and Controls, Koneenrakentajan ja laitetoimittajan yhteistoiminta toiminnallisen turvallisuuden varmistamisessa

Ohjelmistotuotteen hallinnasta

Määrittely- ja suunnittelumenetelmät

Valtioneuvoston kanslia VAIN VIRKAKÄYTTÖÖN Hallinto- ja palveluosasto/hallintoyksikkö Terja Ketola PTJ2008-työsuunnitelma 1 (5)

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

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

Hyvin määritelty on puoliksi tehty kuinka vältetään turha tekeminen jo alussa

IT Service Desk palvelun käyttöönotto palvelukeskuksissa

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

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

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

Kehittää ohjelmointitehtävien ratkaisemisessa tarvittavia metakognitioita!

Ohjelmistojen mallintaminen, Johdatus ohjelmistotuotantoon

Järjestelmäarkkitehtuuri (TK081702) Lähtökohta. Integroinnin tavoitteet

Ohjelmiston testaus ja laatu. Testaustasot

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

Ohjelmistotuotanto, s

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

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

$$$ Raha ratkaisee. $$$ Raha ratkaisee. Ohjelmistotuote. Ohjelmistotekniikan määritelmä

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Dokumentointi ketterissä menetelmissä

Testaaminen ohjelmiston kehitysprosessin aikana

Käyttäjäkeskeisen suunnittelun periaatteet ja prosessit

Testausprosessin vaatimukset. 2. Testausprosessi (Artikkelit) Vesiputousmallin ongelmia. V-mallin neljä osavaihetta. Testausprosessimalli V-malli

Project-TOP QUALITY GATE

Ohjelmoinnin perusteet Y Python

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

T Testiraportti - järjestelmätestaus

KONEAUTOMAATION LAATU JA TURVALLISUUS Marko Varpunen

Ohjelmistojen virheistä

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

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen

Unified Process (UP)

Siltatiedon tarkkuustason määrittäminen Taitorakennerekisterissä. Maria Vinter

käyttötapaukset mod. testaus

Työkalut ohjelmistokehityksen tukena

Harjoitustyö Case - HelpDesk

Mikkelin sähköisen asioinnin alusta - päätöksenteko. Kalle Launiala / ProtonIT Oy kalle.launiala@protonit.net

Määrittelyvaihe. Projektinhallinta

1. Johdanto. Ohjelmistotuotannon ongelmia

Ohjelmistojen mallintaminen. Matti Luukkainen

1. Johdanto. Ohjelmistotuotannon piirteitä

Yhteenveto. Menettelytavat

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

Ohjelmistoprosessit ja ohjelmistojen laatu kevät 2009

Toteutusvaihe T2 Edistymisraportti

Avoimen ja yhteisen rajapinnan hallintasuunnitelma v.1.4

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

Ketterä vaatimustenhallinta

S Portaalinosturi AS Projektisuunnitelma Oleg Kovalev

Transkriptio:

Ohjelmistoprosessi Ohjelmistotuotanto Ohjelmistoprosessi Ohjelmiston elinkaari Ohjelmiston rakentamisen vaiheet ja niiden tulokset Ohjelmiston elinkaaren määrittely Yleisrakenne sille miten ohjelmisto tuotetaan Yleensä prosessilla ymmärretään toistettavaa toimintamallia voiko uniikkituotannossa olla prosesseja? 1 Harri Laine 2 Ohjelmistoprosessimalli Yleiset ohjelmistotuotannon osatehtävät Prosessimalli on ohjelmiston elinkaaren rakenteen määrittely ts. kuvaus sille millaisten vaiheiden kautta ohjelmisto kehittyy ideasta hautaan mahdollisimman yleisesti sovellettavissa oleva ohjeisto ohjelmistojen tuottamiseen ei konkreettisia yksityiskohtaisia toimintasääntöjä vaan pelkkä yleisrakenne malli muokattavissa organisaatiolle ja sovellusalueelle sopivaksi Määrittely Suunnittelu Ohjelmointi Testaus Käyttö ja ylläpito Harri Laine 3 Harri Laine 4 Elinkaaren vaihejako On keskeisin apuväline prosessimallissa Määrittelee prosessin tärkeimmät osavaiheet Määrittelee osavaiheiden suoritusjärjestyksen Määrittelee osavaiheiden keskinäiset vaikutussuhteet Määrittelee osavaiheiden keskinäisiin rajapintoihin liittyvät toimenpiteet kuten dokumentoinnin, tarkastukset, yms Vaihejaon ominaispiirteitä jokainen vaihe tuottaa jonkin määritellyn tuloksen vaiheen tulos toimii syötteenä seuraavalle vaiheelle kumuloituvat osatulokset ohjaavat seuraavan vaiheen suoritusta vaiheen tulokset ovat jollakin määritellyillä kriteereillä hyväksyttävissä tai hylättävissä jokaisen vaiheen alku ja loppu on selvästi havaittavissa usein vaihe tarkentaa sitä edeltäneiden vaiheiden tuloksia Harri Laine 5 Harri Laine 6 Harri Laine 1

Vaihejaon ominaispiirteitä Prosessityypit Keskeistä useissa prosessimalleissa on vaiheen toisto ja silmukallinen iterointi Käytännössä prosessi on aina iteratiivinen prosessiin liittyy implisiittisesti joukko yleisiä, kaikille osavaiheille yhteisiä tukitoimenpiteitä dokumentointi laadunvarmistus tuotteenhallinta projektinjohto,... Rakentaminen peräkkäiset työvaiheet, joista jokaisen tuloksena syntyy jokin 'tuote' määrittely - - edellinen vaihe pohjana seuraavalle Kasvattaminen pikaisesti toimivaan systeemiin, jota muokataan kunnes tulos on tyydyttävä Kokoaminen Kootaan uudelleenkäytettävistä osista Harri Laine 7 Harri Laine 8 Ohjelmiston tuottaminen on sarjallinen, järjestyksessä etenevä prosessi, jossa on seuraavat vaiheet (huom. vaiheet vaihtelevat eri lähteissä) järjestelmä (system engineering) Etsitään halutusta kokonaisjärjestelmästä ohjelmistokomponentit ja hahmotetaan niiden rooli järjestelmässä Selvitetään koko järjestelmän tehtävä ja sen jako osiin Tulos dokumentoidaan vaatimusmäärittely (analysis) määritellään ohjelmisto kiinnittämällä sen päätoiminnot, ulkoiset vaatimukset ja rajoitukset, liittymät, suorituskykyvaatimukset Tuloksena vaatimusdokumentti (design) suunnitellaan ohjelmiston tekninen rakenne, pääkomponentit, arkkitehtuuri, tietorakenteet, tietoliikenne, käyttöliittymä Tuloksena dokumentti (implementation / coding) suunnitelman realisointi toimivaksi ohjelmistoksi Tuloksena ohjelmat ja dokumentti (testing) toimivuuden ja vaatimusten täyttymisen varmistaminen ohjelmaa suorittamalla Virheiden korjaus ja dokumentointi Tuloksena dokumentti Harri Laine 9 Harri Laine 10 käyttöönotto Käyttäjien koulutus, asennukset, tietojen siirrot, ylläpito (maintenance) haluttujen muutosten tai tarvittavien korjausten toteuttaminen, sopeuttaminen idealistinen tilanne: prosessi etenee järjestyksessä vaiheesta toiseen (vesiputous) vaiheet voidaan jakaa edelleen alivaiheisiin, esim. ={yksikkö, integrointi, järjestelmä} dokumentti Harri Laine 11 Harri Laine 12 Harri Laine 2

selkeä, yksinkertainen, perinteinen malli tulosdokumentti päättää vaiheen vasta vaiheen lopussa olevan tarkastuspisteen jälkeen voidaan edetä seuraavaan vaiheeseen käytännössä: vaiheilla riippuvuuksia vaiheen suoritus saattaa paljastaa edellisessä vaiheessa tehtyjä virheitä prosessia tulee peruuttaa -> prosessi muuttuu iteratiiviseksi palattava toistamaan aikaisempia vaiheita etenemisjärjestys muutoin säilyttäen Todellinen tilanne dokumentti Harri Laine 13 Harri Laine 14 Lineaarinen malli - ongelmia Dokumentointi lineaarisen mallin yhteydessä iteratiivisuus on huonosti kuvattu kiinnittää tarkistuspisteet ja dokumentit vaiheiden rajapinnoille -> käytännön peruutus hankalaa prosessin loppupäässä käynnistyvä peruutus (esim. ylläpito --> ) saattaa olla todella kallis operaatio (suuri osa vaiheista ja niiden tuloksista uusittava) toimiva järjestelmä saadaan asiakkaan tutkittavaksi hyvin myöhään vaatimusmäärittely esitutkimusraportti vaatimusmäärittely toimintojen kuvaukset hyväksymissuunnitelma luonnos käyttöohjeesta järjestelmäarkkitehtuuri järjestelmäsuunnitelma liittymämäärittelyt integrointisuunnitelma moduulisuunnitelmat yksikkösuunnitelmat Harri Laine 15 Harri Laine 16 Dokumentointi lineaarisen mallin yhteydessä Dokumentointi lineaarisen mallin yhteydessä ohjelmakoodi tekniset dokumentit yksikköraportit integrointiraportti järjestelmäraportti hyväksymisraportti Tiukasti dokumentteihin sidotun etenemisen ongelmia dokumenttien sovittu aikataulu ei välttämättä vastaa prosessin aikataulua iterointi hankaloituu (onko uusittava vai tehtävä korjausliitteitä?) dokumenttien I/O -olemus liian suoraviivainen näkemys prosessista joskus tarkan dokumentin tekeminen on mahdotonta Harri Laine 17 Harri Laine 18 Harri Laine 3

Lineaarisen mallin plussat tunnetuin yleisesti hyväksytty modularisoi hyvin ohjelmistotuotantoprosessin tarjoaa pohjan kehittyneemmille malleille Prototyyppimalli prototyyppi = nopeasti toteutettu osa järjestelmästä, muokataan tarpeen mukaan idea: järjestelmän keskeisiä osia kokeillaan prototyyppien avulla ennen ta epäselvien asiakasvaatimusten selventäminen mahdollisuuksien selvittäminen käyttöliittymän ja järjestelmän palvelujen esittäminen ja tarkentaminen asiakkaalle nopeasti jotain toimivaa arvioitavaksi edellyttää nopean kehityksen välineitä Harri Laine 19 Harri Laine 20 Prototyyppimalli Prototyyppimalli Määrittely Nopea suunnitelma Prototyypin tekeminen Arviointi ja määritysten täsmennys Tuotteen Valmistus kahdenlaisia prototyyppejä: hylättävät prototyypit prototyyppi ei siirry koskaan tuotantoon vaan tätä varten tehdään erillinen järjestelmä, mahdollisesti kokonaan eri välinein kehittyvät prototyypit prototyypistä jalostetaan tuotantoversio Jalostus voi tapahtua monen prototyypin kautta Harri Laine 21 Harri Laine 22 Prototyyppimalli - ongelmia Asiakas voi tulkita prototyypin varsinaiseksi järjestelmäksi, eikä ymmärrä viivettä miksei se vielä toimi, toimihan se jo kuukausia sitten? Milloin protoilu pitäisi lopettaa? Kehittyvien prototyyppien kohdalla epäkypsät ratkaisut voivat siirtyä tuotteeseen -> tehottomuutta hylättävät prototyypit -> tupla, resurssien hukkakäyttö? RAD-malli (Rapid Application Development) Järjestelmä jaetaan melko itsenäisiin komponentteihin Kutakin komponenttia kehitetään lineaarisen mallin mukaisesti Liiketoimintamalli (Business model) Tietosisältömalli (Information model keskeinen) Toimintomalli (Process model ) Sovelluksen generointi (kehittimien käyttö) Testaus ja kokoaminen Harri Laine 23 Harri Laine 24 Harri Laine 4

RAD-malli (Rapid Application Development) RAD-malli (Rapid Application Development) Testaus ja ja kokoaminen 2 Testaus ja ja kokoaminen Liiketoimintamallinnus Tietosisältömallinnus Toimintomallinnus 1 Generointi Liiketoimintamallinnus Tietosisältömallinnus Toimintomallinnus Generointi Liiketoimintamallinnus Tietosisältömallinnus Toimintomallinnus Generointi Testaus ja ja kokoaminen Sopii, jos ohjelmiston rakenne selkeästi modulaarinen Komponentin kehitys ei saisi viedä yli 3 kk Asiakas ja kehittäjät tiiviissä yhteistyössä Tarvitaan hyvät työkalut Harri Laine 25 Harri Laine 26 Evoluutiomallit kasvattava malli Evoluutiomallit kasvattava malli Suppean ydinjärjestelmän laajentaminen tuotantojärjestelmäksi pieninä täydennyksinä, inkrementteinä Sarja toistuvia vesiputouksia Versio n lajentaa versiota n-1 version n kehittämisessä voidaan ottaa huomioon versiosta n-1 saatu palaute 1. määrittely 2. määrittely inkrementin kehitys voi alkaa ennenkuin ed. versio on valmis 3. määrittely Harri Laine 27 v1 v2 v3 Harri Laine 28 Evoluutiomallit kasvattava malli pienet lisäykset kasvattavat monimutkaisuutta lopputulos riippuu version 1 ydinjärjestelmän ratkaisuista projekti- ja versionhallinta monimutkaistuu miten dokumentoidaan: jokaiselle versiolle täydellisenä vaiko inkrementaalisesti - jos niin löytyykö kokonaisuus Spiraalimalli iteratiivinen malli, joka yhdistää vesiputousmallin, prototyyppimallin ja riskianalyysin tuote valmistuu sarjana vaihetuotteita aikaiset vaihetuotteet voivat olla paperimalleja tai prototyyppejä mallissa suoritetaan toistuvasti toimintosyklejä Harri Laine 29 Harri Laine 30 Harri Laine 5

Spiraalimallin sykli Spiraalimalli - riskianalyysi Riski: asia, joka voi mennä pieleen esim. jonkin uuden ohjelmointikielen käyttöönotto yhteydenpito asiakkaaseen (planning) riskianalyysi onko soveltuva ko. tehtävään onko osaavia ohjelmoijia onko markkinoilla tehokkaita/toimivia toteutuksia riski havaitaan -> hankitaan puuttuva tieto kokeillaan kieltä pilottiprojektissa laadunvarmistus tuotanto kartoitetaan ohjelmoijien osaaminen tehdään markkinaselvitys VALMIS riskianalyysin perusteella tehdään käyttöönottopäätös Harri Laine 31 Harri Laine 32 Spiraalimalli - riskianalyysi riskit vähenevät joka kierroksella tosin esiin saattaa nousta uusia riskejä esim ohjelmointikieliriski ei esiinny paperimallia tehtäessä tuote tarkentuu kierros kierrokselta asiakas arvioi vaihetuotetta ja antaa palautetta Spiraalimalli yhteydenpito asiakkaaseen riskianalyysi tarvittaessa tehdään prototyyppi tuotanto laadunvarmistus Harri Laine 33 Harri Laine 34 Spiraalimallin ongelmia Komponenttimalli asiakkaan toistuva aktivoiminen rasittaa tarkentuvat prototyypit -> aikaavievää käytännössä vajavaiseen riskiasiantuntemukseen nojautuminen Spiraalimallin muunnella, jossa perusideana on tehdyn työn hyödyntäminen. Jokaisen syklin alussa etsitään valmiita ratkaisuja esillä oleviin ongelmiin. Otetaan sellainen käyttöön jos löytyy Suunnitteluratkaisut, Ohjelmakomponentit Jos ratkaisua ei löydy valmiina se tehdään itse Ratkaisuvarastot komponenttikirjastot, Harri Laine 35 Harri Laine 36 Harri Laine 6