OpenUP ohjelmistokehitysprosessi

Samankaltaiset tiedostot
arvostelija OSDA ja UDDI palveluhakemistoina.

Selainpelien pelimoottorit

Ohjelmistotekniikka - Luento 2

Ohjelmistotekniikka - Luento 2 Jouni Lappalainen

Scrumin käyttö ketterässä sovelluskehityksessä

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

Unified Process (UP)

Arkkitehtuurinen reflektio

Ohjelmistoprojekteista. Datanomiopiskelijat 2.vuosi

Lyhyt johdatus ketterään testaukseen

Tutkittua tietoa. Tutkittua tietoa 1

Luonnontieteiden popularisointi ja sen ideologia

Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA. Karoliina Ljungberg

Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages

Aika/Datum Month and year Kesäkuu 2012

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

Ketterien periaatteiden merkitys projektityössä

Maailman muutosta tallentamassa Marko Vuokolan The Seventh Wave -valokuvasarja avauksena taidevalokuvan aikaan

Projektin suunnittelu. Pienryhmäopetus - 71A00300

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

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

Kokonaisvaltainen mittaaminen ohjelmistokehityksen tukena

Tutkittu totuus globaalista ohjelmistokehityksestä

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

arvostelija Turvallisuuskriittisissä, sulautetuissa järjestelmissä esiintyvien ohjelmistovaatimusten virheanalyysi Jarkko-Juhana Sievi

Oppimateriaalin kokoaminen ja paketointi

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Koht dialogia? Organisaation toimintaympäristön teemojen hallinta dynaamisessa julkisuudessa tarkastelussa toiminta sosiaalisessa mediassa

Projektityö

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

Ohjelmistojen mallintaminen kertausta Harri Laine 1

! #! %! & #!!!!! ()) +

Projektin suunnittelu 71A00300

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)

Ketterä projektinhallinta

ja -kehitysmenetelmistä Jyri Partanen, QA Manager Sulake Corporation

10 Kohti ketterää ohjelmistokehitystä

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

Projektinhallinta SFS-ISO mukaan

Projektin suunnittelu A71A00300

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

Projektin suunnittelu A71A00300

Ohjelmistojen suunnittelu

Trialogisen oppimisen suunnitteluperiaatteet

SEPA päiväkirja. BetaTeam. Juho Mäkinen, 57796V, Jari Leppä, 42710V, Versio Pvm Tekijä Kuvaus

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Katsaus korruption vaikutuksesta Venäjän alueelliseen talouskasvuun ja suoriin ulkomaisiin investointeihin

5aDay strategiatyössä

Laskennallinen yhteiskuntatiede

Ketterät menetelmät ja julkinen hankinta

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Project group Tete Work-time Attendance Software

IT2015 EKT-ehtojen käyttö

VERSIONHALLINTA. PARIOHJELMOINTI Lari Ahti, 62634M Antti Kauppinen, 58390D

Projektisuunnitelma. Projektin tavoitteet

Onnistunut ohjelmistoprojekti

Ohjelmistotekniikka kevät 2003 Laatujärjestelmät

Ketterä vaatimustenhallinta

1 Johdanto. TTY Ohjelmistotekniikka. Ohjelmistoarkkitehtuurit Syksy 2008

Digitaalisuudesta muutosvoimaa

Aikuisopiskelijan viikko - Viitekehys alueellisten verkostojen yhteistyöhön

Tapahtuipa Testaajalle...

Kun scrum ei riitä - skaalaa ketterä tuotekehitys SAFe lla Nestori Syynimaa Sovelto Oyj

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

Hajautettu Ohjelmistokehitys

CMMI CMMI CMM -> CMMI. CMM Capability Maturity Model. Sami Kollanus TJTA330 Ohjelmistotuotanto

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

Ohjelmistotuotteen hallinnasta

Avointen ohjelmistojen käyttö ohjelmistokehityksessä

Petri Mattila KÄYTTÄJÄKESKEISEN SUUNNITTELUN INTEGROINTI KETTERÄN KEHITTÄMISEN PROSESSIIN JA ROOLEIHIN

CMM Capability Maturity Model. Software Engineering Institute (SEI) Perustettu vuonna 1984 Carnegie Mellon University

CMMI CMM -> CMMI. CMM Capability Maturity Model. Sami Kollanus TJTA330 Ohjelmistotuotanto Software Engineering Institute (SEI)

Projektin suunnittelu

Tiedekunta/Osasto Fakultet/Sektion Faculty Valtiotieteellinen tiedekunta

TIEA4 Projektityö, 5-10 op.,

Laatu tietojärjestelmähankkeissa. Tietohallinnon kokemuksia Juha-Pekka Leskinen Atk-päällikkö Eduskunnan kanslia

Useaa tietolähdettä käyttävä klusterointi

Avoimet ohjelmistokehykset

Kokonaisuuksien, riippuvuuksien ja synergioiden hahmottaminen helpottuvat

Ostavat organisaatiot konsultin silmin

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

Ryhmäläisten nimet:

Prosessikuvaukset ja elinkaarimallit

Ohjelmistotuotanto historiallinen perspektiivi JOTU2013/K.Systä 1

1.3 Katsaus ohjelmistotuotannon kehittymiseen

Ohjelmistoprosessit ja ohjelmistojen laatu kevät 2009

Miten tehdä onnistunut projektisuunnitelma 10 vinkkiä

Ohjelmistojen mallintaminen, kurssikoe esimerkkivastauksia

Prosessien kypsyysmallit hajautetussa ohjelmistokehityksessä

IT-organisaatiot: Suomen Pankki

Järjestelmien elinkaarenhallinta, järjestelmäsalkunhallinta ja Thinking Portfolio

Sisäänrakennettu tietosuoja ja ohjelmistokehitys

Asuntojen neliöhinnan vaihtelu Helsingissä ( )

PROJEKTIN SUUNNITTELU JOUNI HUOTARI, PAAVO MOILANEN, ESA SALMIKANGAS

TRIPLEWIN KEHITYSTARINA

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

Ryhmäläisten nimet:

Harjoituskoe Vastaukset. ISTQB Ketterä testaaja 2015 Perustason sertifikaattisisällön laajennus

Vaatimusten ja konfiguraation hallinta avoimessa ohjelmistokehityksessä

Estimointityökalut. Pekka Forselius, Senior Advisor Finnish Software Measurement Association FiSMA ry

Transkriptio:

OpenUP ohjelmistokehitysprosessi Sami Männistö Helsinki 14.11.2008 Seminaari HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

i HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET Tiedekunta/Osasto Matemaattis-luonnontieteellinen Tekijä Författare Sami Männistö Työn nimi Arbetets titel OpenUp ohjelmistokehitysprosessi Laitos Institution Tietojenkäsittelytieteen laitos Oppiaine Läroämne Tietojenkäsittelytiede Työn laji Arbetets art Seminaari Tiivistelmä Referat Aika Datum 14.11.2008 Sivumäärä Sidoantal 8 OpenUp on iteratiivinen ja inkrementaalinen ohjelmistokehitysprosessi, joka on syntynyt avoimen ohjelmistokehityksen tuloksena Eclipse Process Framework projektissa. OpenUP on myös ketterä menetelmä. Samalla kun sen juuret ovat Unified Process:issa ja RUP:issa, niin OpenUP korostaa ketterien menetelmien filosofian mukaan ohjelmistokehityksen kiinteää yhteistyötä vaativaa luonnetta. Avainsanat Nyckelord OpenUP, RUP, UP, ketterät menetelmät, menetelmät, prosessit Säilytyspaikka Förvaringställe Muita tietoja Övriga uppgifter

ii Sisältö 1. Johdanto...1 2. OpenUP Historiaa...1 3. SPEM...2 4. EPF ja EPFC...2 3. OpenUP menetelmä...3 3.1. OpenUP kerrokset...3 3.1.1. Mikroinkrementit...4 3.1.2. Iteraation elinkaari...5 3.1.3. Projektin elinkaari...6 3.2. OpenUP perusperiaatteet...8 Lähteet...9

1 1. Johdanto OpenUp on iteratiivinen ja inkrementaalinen ohjelmistokehitysprosessi, joka on syntynyt avoimen ohjelmistokehityksen tuloksena Eclipse Process Framework projektissa. OpenUP on ketterä menetelmä, jonka juuret ovat Unified Process menetelmissä. OpenUP on muokattavissa ja laajennettavissa käyttämällä Eclipse Process Framework Composer työkalua. 2. OpenUP Historiaa OpenUP prosessin juuret ovat IBM:n RUP:issa (Rational Unified Process). Joukko RUP:in kehittäjiä alkoi miettiä miten voitaisiin kehittää kevyempi malli RUP:ista [Kro07]. Lähtökohtana oli kehittää ketterä lähestymistapa RUP:iin, kuitenkin samalla hyödyntäen muiden ketterien menetelmien, kuten XP ja Scrum, parhaita käytäntöjä. Työ aloitettiin IBM:ssä, mutta hyvin pian todettiin, että tarvitaan laajempi joukko kehittämään sitä. Aloitettu työ lahjoitettiin 2006 Eclipse säätiölle osaksi Eclipse Process Frameworkia (EPF). Lahjoitus sisälsi OpenUP:n pohjalla olevia RUP:in osia ja teknologiaa. OpenUP:n kehitystyötä jatkettiin osana Eclipse Process Framework (EPF) projektia. Aktiivisesti kehitystyössä oli mukana useita ihmisiä yli 20sta eri yhtiöstä [Gus08]. Kehittämisessä mukana olevilla oli taustaa mm. seuraavien menetelmien kehittämisestä: Agile RUP, Dynamic System Development Method (DSDM), Agile Model Driven Development (AMDD) ja Scrum. Kehittämisessä ei lähdetty tyhjältä pöydältä, vaan siinä pyrittiin löytymään yhteisiä tärkeitä asioita eri menetelmistä. Tuloksena päädyttiin karsimaan ja harmonisoimaan eri menetelmien käytäntöjä. Tuloksena syyskuussa 2007 julkaistiin OpenUP 1.0. Jonka tavoitteena ei ole olla lopputuote, vaan ensimmäinen julkaisu kehityspolulla, joka jatkuu avoimen ohjelmistokehityksen proses-

2 sina EPF projektin alla [Kro07]. Tämän hetkinen versio OpenUP 1.5.0.1. julkaistiin 27.10.2008 [EPF08]. 3. SPEM SPEM (Software Process Engineering Meta-model) prosessimetamalli määrittelee formaalin kielen, jolla voi kuvata kehitysprosesseja. Malli on hyvin yleinen ja sillä voi kuvata minkä tahansa kehitysprosessin. SPEM specifikaatio julkaistiin marraskuussa 2007. SPEM määrittelee elementit, joilla kuvataan prosessi, samoin kuin elementit, joilla hallitaan ja jäsennetään tätä tietoa. Peruselementit, joilla tietoa hallitaan ovat: Method Library, Method Plug-in, Method Package, Process Package, Method Configuration [EPF08]. 4. EPF ja EPFC Eclipse Process Framework (EPF) on avoimen ohjelmistokehityksen projekti, jonka tavoitteena on kustomoitava ohjelmistokehitysprosessien mallinnuskehys, jossa mukana on malliprosessi ja työkaluja. Sen on tarkoitus sopia usean erilaisen prosessin ja erilaisten kehitystyylien kanssa [EPF08]. Projektin tavoitteet o tarjota laajennettava kehys ja mallityökalut ohjelmistokehitysprosessien mallintamiseen. menetelmien ja prosessien luomiseen, menetelmäkirjastojen hallintaan ja muokkaamiseen sekä prosessien julkaisuun. (EPFC) o Tarjota laajennettava esimerkkiprosessi, joka sisältää kehityksen ja hallinnan näkökulman, tukee iteratiivista ja inkrementaalista kehittämistä. (OpenUP)

3 EPF projektin tuloksena on syntynyt Eclipse Process Framework Composer (EPFC) ja OpenUP. EPFC työkalu prosessien mallintamiseen on rakennettu Eclipse alustalle. EPFC hyödyntää SPEM 2.0 prosessimetamallia prosessien mallintamisessa. EPFC:ää voi käyttää erilaisia projektityyppejä ja kehitysmalleja käyttävien prosessien mallintamiseen. 3. OpenUP menetelmä OpenUP on erittäin kevyt ohjelmistokehitys prosessi, jonka perusta on Unified Process (UP) ohjelmistokehitysprosessissa. OpenUP on samanaikaisesti minimaalinen, kokonainen ja laajennettava prosessi [Vel08]. OpenUP on minimaalinen, mutta riittävä, koska se sisältää vain keskeiset asiat ohjelmistokehitysprosessista. Kokonainen prosessi, koska se pystyy kuvaamaan koko prosessin järjestelmän rakentamiseksi. Laajennettava, koska sitä voidaan pitää perusprosessina, jota täydennetään tai laajennetaan tarpeen mukaan. [EPF08] OpenUP on myös ketterä menetelmä. Samalla kun sen juuret ovat Unified Process:issa ja RUP:issa, niin OpenUP korostaa ketterien menetelmien filosofian mukaan ohjelmistokehityksen kiinteää yhteistyötä vaativaa luonnetta [Kro07]. 3.1. OpenUP kerrokset OpenUP yhdistää iteratiivisen ja inkrementaalisen lähestymistavan prosessin ohjattuun elinkaareen. OpenUP voidaan jakaa kolmeen eri kerrokseen. Nämä kerrokset ovat mikroinkrementit, iteraation elinkaari ja projektin elinkaari. Tasot on esitetty kuvassa 1.

4 Kuva1. OpenUP kerrokset [OpenUP]. 3.1.1. Mikroinkrementit Henkilötasolla OpenUP projekti on organisoitu mikroinkrementteina. Mikroinkrementti kuvaa pientä yksikköä työtä, joka tuottaa selkeän mitattavan edistymisaskeleen projektiin. Tämä edistyminen on yleensä mitattavissa tunteina tai muutamina päivinä. Prosessin mukaan järjestelmää toteutetaan intensiivisessä yhteistyössä sitoutuneen ja itseohjautuvan tiimin voimin[openup].. Mikroinkrementin käsite auttaa yksittäistä tiimin jäsentä osittamaan oman työnsä siten, että jokainen tuottaa mitattavaa arvoa tiimin osana. Mikroinkrementit tarjoavat erittäin nopean palautteen, joka ohjaa joustavaa päätöksentekoa jokaisen iteraation sisällä [Kru07].

5 Mikroinkrementin pitää olla hyvin määritelty ja jokaisen mikroinkrementin päivittäistä etenemistä pitää pystyä seuraamaan. Mikroinkrementit tarkennetaan ja seurataan käyttäen työkohteita. Järjestelmä kehittyy mikroinkrementteina, useiden työkohteiden suorittamisen kautta. Mikroinkrementtien etenemistä seurataan tiimin kesken tapaamisissa tai yhteistyötyökalujen kautta. Avoimuus etenemisen seurannassa tiimin kesken tuo projektiin läpinäkyvyyttä ja tehostaa edelleen tiimin yhteistyötä. 3.1.2. Iteraation elinkaari OpenUP:n mukaan projekti jaetaan iteraatioihin. Iteraatio on suunniteltu, aikaikkunaan sidottu intervalli, joka tyypillisesti mitataan viikoissa. Iteraatioiden tarkoituksena on saada tiimi toimittamaan suunnitellulla tavalla inkrementaalista lisäarvoa projektin intressitahoille. Iteraatiosuunnitelma määrittää mitä toimitetaan iteraatiossa. Tulos on yleensä demottava tai toimitusvalmis käännöspaketti. Itseohjautuva OpenUP tiimi organisoi iteraation siten, että iteraation tavoitteet tulevat täytetyksi. Samalla tiimi sitoutuu toimittamaan iteraation päätteeksi iteraation tuotoksen. Iteraation tehtävät saadaan työkohteiden listasta. OpenUP määrittää iteraation elinkaaren, joka ohjaa miten mikroinkrementit edistävät järjestelmää inkrementaalisesti kohti iteraation tavoitetta [OpenUP]. Iteraation suunnittelu, arviointi ja etenemisen seuranta tehdään työkohteiden kautta. Iteraatiosuunnitelma laaditaan valitsemalla ensisijaiset työkohteet. Ketterät arviointitekniikat auttavat arvioimaan kuinka monta työkohdetta voidaan turvallisesti mahduttaa aikarajoitettuun iteraatioon [Kro07]. Kuvassa 2. on esitetty iteraation elinkaarimalli.

6 Kuva 2. Iteraation elinkaarimalli [OpenUP] 3.1.3. Projektin elinkaari OpenUP jäsentää projektin elinkaaren neljään vaiheeseen: Aloitus-, tarkennus-, rakennus- ja siirtymävaihe. Projektin elinkaarimalli tarjoaa projektin intressitahoille ja tiimin jäsenille näkyvyyttä ja päätöspisteitä läpi koko projektin. Elinkaarimalli tuo mahdollisuuden tehokkaaseen valvontaan ja tilaisuuksia tehdä ns. jatketaan/ei jatketa päätöksiä. Projektisuunnitelma määrittää projektin elinkaarimallin [OpenUP]. Projektin elinkaarimalli tarjoaa intressitahoille kokonaiskuvan ja läpinäkyvyyttä projektiin. Se tarjoaa myös ohjausmekanismin, jonka avulla voidaan kontrolloida mm. projektin rahoitusta, laajuutta, riskejä ja sen tuottamaa lisäarvoa. OpenUP organisoi iteraatiot vaiheisiin. Jokaisella vaiheella on erityinen tarkoitus ja virstanpylväsehto. Aloitusvaihe. Määritä laajuus ja tavoitteet projektille.

7 Tarkennusvaihe. Muodosta ymmärrys vaatimuksista ja toteuta suoritettava arkkitehtuuri avainskenaarioita ja laatuvaatimuksia varten. Rakennusvaihe. Toteuta järjestelmän toiminnallisuus. Siirtymävaihe. Julkaise järjestelmä loppukäyttäjille. Tämä projektin elinkaarimalli erottaa OpenUP:n monista muista ketteristä menetelmistä. Elinkaarimalli kiinnittää huomion projektin laajuuteen ja ratkaisuihin jo ennen laajempaa toteutusta, projektin alkupäässä aloitus- ja tarkennusvaiheessa. Tarkennusvaiheen lopussa on yleensä käytetty 20-25 % budjetista, mutta 30-40 % aikataulusta [Kro07]. Projektin elinkaarimalli tuo seurantaa ennen kaikkea kahteen intressitahoille tärkeimpään asiaan, riskien hallintaan ja arvon tuottamiseen intressitahoille. Vaiheistuksella pyritään laskemaan riskiä samalla kun seurataan intressitahojen saamaa hyötyä. Kuvassa 3. on esitetty riskien lasku aikaisessa vaiheessa projektin elinkaarta. Kuva3. Projektin vaiheet [OpenUP]

8 3.2. OpenUP perusperiaatteet OpenUP:n perustuu neljän perusperiaatteen varaan [BPS07]. Nämä kaikki neljä periaatetta ovat suoraan johdettavissa Ketterän manifestin, (Agile Manifesto), julistamasta ketterän kehityksen perusmääritelmästä [AGILE08]. Taulukossa 1. on rinnakkain esitetty OpenUP:n perusperiaatteet ja ketterän manifestin perusmääritelmän ydinkohdat. OpenUP:n neljä perusperiaatetta Tee yhteistyötä saavuttaaksesi yhteisen linjan ja ymmärryksen Keskity arkkitehtuuriin aikaisin minimoidaksesi riskin ja organisoidaksesi kehitystyön Tasapainota vaatimukset ja rajoitteet tärkeysjärjestykseen, jotta maksimoidaan intressitahojen hyöty Kehity hankkimalla jatkuvasti palautetta ja parantamalla Ketterä manifesti 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. Taulukko 1. OpenUP ja Ketterä manifesti [Gus08].

9 Lähteet [AGILE08] Manifesto for Agile Software Development http://agilemanifesto.org/ [13.11.2008] [BPS07] Borg, A., Patel, M., Sandahl, K., Extending the OpenUP/Basic Requirements Discipline to Specify Capacity Requirements. Requirements Engineering Conference, 2007. 15th IEEE International Volume, Issue, 15-19 Oct. 2007, sivut 328 333. [EPF08] Eclipse Process Framework Project (EPF). http://www.eclipse.org/epf/ [13.11.2008] [Gus08] Gustafsson, B., OpenUP The Best of Two Worlds. Methods & Tools Spring 2008, sivut 21-32. [Kro07] Kroll, P., OpenUP in Nutshell. The Rational Edge. [http://www.ibm.com/developerworks/rational/library/sep07/kroll/] [OpenUP] OpenUP 1.5, publish created 21.08.2008. [Vel08] Velzen van, T. Skillful and maneuverable: OpenUP and the Eclipse Way. The Rational Edge. [http://www.ibm.com/developerworks/rational/library/edge/08/jul08/vanv elzen/]