Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on...

36
Unified Process for EDUcation [UPEDU] Sami Pietinen Joensuun yliopisto tietojenkäsittelytieteen laitos 7.9.2006

Transcript of Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on...

Page 1: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

Unified Process for EDUcation [UPEDU]

Sami PietinenJoensuun yliopistotietojenkäsittelytieteen laitos7.9.2006

Page 2: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

Sisällysluettelo

1. Johdanto............................................................................................................................................32. UPEDUn konseptuaalinen malli.......................................................................................................33. UPEDU­prosessi...............................................................................................................................4

3.1 Prosessin vaiheista.....................................................................................................................63.2 Disipliineistä..............................................................................................................................73.3 Miten UPEDU eroaa RUPista?..................................................................................................8

4. Roolit................................................................................................................................................84.1 Analysoija..................................................................................................................................94.2 Suunnittelija.............................................................................................................................104.3 Implementoija..........................................................................................................................114.4 Integroija..................................................................................................................................124.5 Testaaja....................................................................................................................................134.6 Muutostenhallintavastaava.......................................................................................................144.7 Konfiguraatiovastaava.............................................................................................................154.8 Projektipäällikkö......................................................................................................................164.9 Katselmoija..............................................................................................................................174.10 Osakas....................................................................................................................................174.11 Muut roolit.............................................................................................................................18

5. Aktiviteeteista.................................................................................................................................186. Artefakteista....................................................................................................................................197. Disipliinit........................................................................................................................................19

7.1 Vaatimustenhallinta­disipliini..................................................................................................197.2 Analysointi ja suunnittelu­disipliini........................................................................................237.3 Implementaatio­disipliini.........................................................................................................267.4 Testaus­disipliini......................................................................................................................287.5 Konfiguraation ja muutostenhallinta­disipliini........................................................................307.6 Projektinhallinta­disipliini.......................................................................................................32

8. Laatu, prosessin arviointi ja mittaus...............................................................................................359. Työkaluohjelmat.............................................................................................................................35Viitteet................................................................................................................................................36Dokumenttiin kohdistuneet muutokset...............................................................................................36

Page 3: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

1. Johdanto

Ohjelmistoprosessi (software process) antaa ohjeita ja suuntaviivoja tehokkaalle ohjelmistojen kehitykselleja   evoluutiolle,   perustan   ohjelmistojen   peräkkäisille   sukupolville,   vähentää   riskien   mahdollisuuksia   javaikutuksia,   parantaa tuottavuutta, laatua ja ennakoitavuutta, vangitsee ja dokumentoi parhaat käytännöt,joita saadaan aikaisempien kokemisten perusteella,  edistää  ja ylläpitää  yhteistä  visiota ja kulttuuria sekätarjoaa   suunnitelman   tehokkaiden   työkalujen   käyttöön.   Kokonaisuudessaan   ohjelmistoprosessi   sisältääkaikki  ne aktiviteetit,   joita   tarvitaan käyttäjien  tarpeiden muuttamiseksi  toimivaksi  ohjelmistotuotteeksi.Ohjelmistoprosessi määrittelee tavan, jolla ihmiset toimeenpanevat ja suorittavat ohjelmiston elinkaaren erivaiheet.

UPEDU on yksinkertaistettu prosessi RUP  (Rational Unified Process) ohjelmistoprosessista. Se ei sovelluteollisuuden   tuotantokäyttöön,   mutta   tarjoaa   systemaattisen   (disciplined)   lähestymistavan   tehtävien   javastuiden   jakamiseen   kehitysorganisaatiossa   onnistuneiden   ohjelmistojen   kehittämiseksi.   UPEDU   ontarkoitettu   käytettäväksi   opetus­   tai   koulutusympäristössä   ja   sen   tavoitteena  on   varmistaa   laadullisestikorkeatasoisen ohjelmistotuotteen kehitys, joka vastaa loppukäyttäjän tarpeita projektin kuitenkin pysyessäsuunnitellussa   aikataulussa   ja   budjetissa.   Prosessia   on   yksinkertaistettu,   jotta   oppija   voi   keskittyäohjelmistoprosessin keskeisiin asioihin, ydinasioihin, ja nämä ydinasiat painottuvat prosessin kognitiivisiintoimintoihin.   Tällaiseen   rakenteelliseen   ratkaisuun   liittyy   oletus,   että   oppija   saavuttaa   sen   avullaperusymmärryksen,   josta   hän   saa   vankan   pohjan   laajennettujen   (extended)   ohjelmistoprosessinaktiviteettien suorittamiseen tulevaisuudessa [2]. 

UPEDU (Unified Process for EDUcation) on iteratiivinen ohjelmistoprosessi ohjelmien inkrementaaliseenkehittämiseen.  Iteratiivisuuden  ideana   on   että   projektin   vaiheet   voidaan   jakaa   pienemmiksihallintarakenteiksi,  iteraatioiksi.  Inkrementaalisuus puolestaan tarkoittaa ohjelman kehittämistä vähitellenniin,   että   jokainen   valmis  inkrementti,   eli   lisäys   kehitettävään   ohjelmaan,   tuo   ohjelmaan   jotain   uusiapiirteitä.     Inkrementaalisuuden  hyötyjä  ovat  esimerkiksi  uusien   tuoteversioiden  nopea   julkaiseminen   jatestauksen helpottuminen.  Testaus  on helpompaa,  koska sitä  ei   jätetä  kehitysprosessin  loppuvaiheeseen,vaan testausta suoritetaan samanaikaisesti kehityksen kanssa mahdollistaen näin  keskittymisen pienempiinkokonaisuuksiin.   Inkrementaalinen  kehitys  myös  vähentää  virheiden  kumuloitumista.   Inkrementaalisuusvastaa  osaltaan  myös  ongelmaan,   joka  syntyy  kun kaikkia  kehitettävän  ohjelman  vaatimuksia  ei  voidaselvittää   ohjelman  kehityksen   alkuvaiheessa.   Inkrementaalisuus  antaa   tilaa  vaatimuksien  kehittymiselleohjelmiston  kehitysprosessin  aikana.  Jonkinlainen epätäydellinen versio  kehitettävästä  ohjelmasta  auttaamyös asiakasta hahmottamaan millaisia uusia toimintoja ja ominaisuuksia ohjelman tulisi sisältää.

2. UPEDUn konseptuaalinen malli

UPEDU perustuu konseptiin, jossa ohjelmistoprosessi nähdään abstraktien aktiivisten entiteettien, roolienkollaboraationa.   Roolit   suorittavat   tehtäviä,   joita   kutsutaan   aktiviteeteiksi.   Aktiviteetit   kohdistuvatkonkreettisiin ja todellisiin entiteetteihin, joita kutsutaan artefakteiksi.  Rooli  määrittelee henkilön vastuutohjelmistoprosessissa.  Aktiviteetit  ovat  työn pienimpiä  osia.  Työn osittaminen aktiviteetteihin jakaa työnpienempiin   helpommin   hallittaviin   osiin,   jolloin   työn   suunnittelu   ja   edistymisen   seuranta   helpottuvat.Artefaktit  ovat  fyysisiä   entiteettejä,   jotka  syntyvät   ja  kehittyvät  aktiviteettien  tuloksena.  Niitä  ovat  mm.erilaiset dokumentit, tiedostot, mallit ja mallien elementit. UPEDUn taustalla olevan konseptuaalisen mallinentiteettien, eli roolien, artefaktien ja aktiviteettien, relaatioita esittää kuva 5.

Page 4: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

                                        Kuva 1. Konseptuaalinen malli.

Mallin periaatteena on että  rooli,  joka on määrätty kehitystiimin jäsenelle,  voi olla vastuussa yhdestä  taiuseammasta  artefaktista.   Jos   rooli  kuuluu  kehitysorganisaation  ulkopuoliselle  yksilölle,   saattaa  olla  ettärooliin ei silloin kuulu varsinaisia vastuita artefakteista,  mutta roolin omaavalla yksilöllä  voi olla oikeusesimerkiksi lukea ja tarkastaa tiettyjä artefakteja tai luoda uusiakin artefakteja, esimerkiksi muutospyyntöjä.Rooli   suorittaa   aktiviteetteja,   joiden   tuloksena   voi   olla   yksi   tai   useampi   artefakti.   Aina   aktiviteetti   eikuitenkaan luo uutta artefaktia tai muuta sitä. Aloitettua aktiviteettia ei tarvitse suorittaa kerralla loppuunasti,  vaan aktiviteetin  pariin voidaan palata  useampaan kertaan prosessin eri  vaiheissa,   jolloin osittainenaktiviteetin   suorittaminen   aiheuttaa   vain   lisäyksen   artefaktiin,   mutta   ei   rakenna   sitä   valmiiksi.   Tätäkutsutaan   kehityssyklin   läpi   kulkevaksi   artefaktien   kehittymiseksi.   Artefakti   voi   toimia   syötteenäaktiviteetille, joka taas voi kuluttaa artefaktin.

3. UPEDU-prosessi

Aktiviteettien   ja   artefaktien   joukkoa,   joita   todella   käytetään   organisaatiossa,   kutsutaan   organisaationprosessimalliksi (process model). Aktiviteettien ja artefaktien joukkoa, joka on määritelty yleisellä tasollaei   millekään   tietylle   organisaatiolle,   ja   joka   sisältää   kaikki   disipliinien   käytännöt,   kutsutaanreferenssiprosessimalliksi  (reference   process   model).  UPEDU­prosessimalli   vastaa   tasoja   2   ja   3   SEIn(Software   Engineering   Institute)   kehittämässä   SW­CMMn   (Software   Capability   Maturity   Model)referenssiprosessimallissa [2] .

Prosessimalli   sisältää   kaksi   ulottuvuutta.   Horisontaalinen   ulottuvuus   sisältää   neljä   ajallisesti   toisiaanseuraavaa vaihetta (phase): alkuvaihe (inception), suunnittelu­/tarkennusvaihe (elaboration), rakennusvaihe(construction)   sekä   siirtymävaihe   (transition).  Vertikaalinen  ulottuvuus   sisältää   projektissa   suoritettavatdisipliinit (disciplines), jotka ryhmittävät projektissa suoritettavat aktiviteetit loogisiin ryhmiin.

Disipliinejä   ovat   vaatimustenhallinta   (requirements),   analysointi   ja   suunnittelu   (analyses   and   design),implementointi   (implementation),   testaus  (test),  konfiguraation   ja  muutosten  hallinta  (configuration  andchange   management)   sekä   projektin   hallinta   (project   management).   Prosessin   elinkaaren   vaiheet   jadisipliinit   linkittyvät   toisiinsa   iteraatioiden avulla   ja  yksittäinen  vaihe  voi  sisältää  yhden tai  useammaniteraation disipliinejä riippuen projektikohtaisista ominaispiirteistä. Iteraatiot ovat hallinnallisia rakenteita,jotka   mahdollistavat   elinkaaren   vaiheiden   loppuun   saattamisen   kontrolloinnin   käyttäen   disipliineilletarkoituksenmukaisia aktiviteetteja ja artefakteja. Iteraatio on tavallaan miniprojekti. UPEDU­prosessi onesitetty kuvassa 2.

Page 5: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

                                         Kuva 2. UPEDU­prosessi [1].

Kuvassa   2   olevasta   tyypillisestä   disipliinien   painotuksesta   nähdään,   että   yleensä   alkuvaiheessa   aikaakäytetään  eniten vaatimustenhallintaan (requirements), josta painopiste siirtyy analysoinnin ja suunnittelunkautta   implementaatioon   ja   sen   jälkeen   testaukseen.   Kaikki   disipliinit   ovat   yleensä   läsnä   jokaisessavaiheessa, vaikka painopiste työmäärien suhteen vaihteleekin.

Kuvasta 3 nähdään, että jokainen prosessin vaihe päättyy nimettyyn merkkipaaluun tai virstanpylvääseen.Horisontaalinen ulottuvuus on käytäntöön panonsa suhteen (vaiheet, iteraatiot, virstanpylväät) luonteeltaandynaaminen kun taas vertikaalinen ulottuvuus on staattinen (prosessin komponentit, aktiviteetit, työnkulut,artefaktit ja roolit). Jokaisen virstanpylvään kohdalla suoritetaan arviointi siitä, onko vaiheen tavoitteet  japäämäärät saavutettu ja näin asian ollessa voidaan siirtyä seuraavaan vaiheen suorittamiseen. Jos tavoitteitaei ole saavutettu,  voidaan tilanne ratkaista esimerkiksi  vaiheen suoritusaikaa pidentämällä.  Virheiden japuutteiden korjauksia ei kannata ajoittaa myöhempään ajankohtaan vaan ne kannattaa korjata välittömästilöytymisen jälkeen.

  Kuva 3. Prosessin vaiheet ja virstanpylväät [1].

UPEDU mahdollistaa kehitysvaiheiden läpikäynnin tarvittaessa useampaan kertaan. Yksittäistä  vaiheidenläpikäyntiä   kutsutaan  kehityssykliksi  (development  cycle)   ja  se   tuottaa  ohjelmistosta  uuden sukupolven(generation).     Kehityssykleillä   on   tavallisesti   toisistaan   eriävät   painotukset   disipliinien   työmäärissä.Kehityssykliä   seuraavia   vaiheiden   läpikäyntejä   kutsutaan  evoluutiosykleiksi  (evolution   cycles).Evoluutiosyklin  alkuvaihe   sekä   sitä   seuraava   suunnittelu­/tarkennusvaihe  ovat   tavallisesti  kehityssyklinvastaaviin vaiheisiin verrattuna pienempiä.  Syklit voivat olla puhtaasti  peräkkäisiä,  mutta yleisempää  on

Page 6: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

vaiheiden osittainen päällekkäisyys.  Ohjelmiston elinkaari  (software lifecycle) koostuu kehityssyklistä  jasitä mahdollisesti seuraavista evoluutiosykleistä.  Syklejä ja sukupolvia on esitetty kuvassa 4.

Kuva 4. Syklit ja sukupolvet [1].

3.1 Prosessin vaiheista

Kehityssykliin   kuuluu   neljä   vaihetta:   alkuvaihe   (konsepti),   suunnittelu­/tarkennusvaihe   (suunnittelu),rakennusvaihe (toteutus) sekä siirtymävaihe (tuotteen toimitus).

Alkuvaiheessa  tarkoituksena on tehdä business case eli oikeutus kehitettävälle ohjelmistolle. Alkuvaihettavoidaan   kutsua   myös   nimellä   konseptivaihe.   Vaiheen   keskeisiä   tehtäviä   ovat   alustava   vaatimustenlaatiminen,   alustava   riskien   arviointi,   operationaalisen   vision   luominen,   projektia   tukevan   ympäristönvalmisteleminen   ja   tarvittaessa   konseptuaalisen   prototyypin   rakentaminen.   Lisäksi   erotellaan   kriittisetkäyttötapaukset  ja primääriset  skenaariot,   joiden vaikutuksesta  saatetaan joutua tekemään suunnittelussakompromissejä. Vaihe määrittelee projektin laajuuden ja tätä laajuutta tulee hallita, jotta projektin aikanatulevat muutokset eivät paisuttaisi aikataulua ja budjettia hallitsemattomasti. Alkuvaiheen virstanpylvästäkutsutaan   nimellä   tavoite­virstanpylväs   (objective   milestone).   Alkuvaiheen   jälkeen   seuraava   vaihe   onsuunnittelu­/tarkennusvaihe.

Suunnittelu­/tarkennusvaiheessa suunnitellaan projekti, määritellään ohjelmiston ominaisuudet ja toiminnotsekä   luodaan   systeemin   perustaso   (system   baseline).  Perustaso  tarkoittaa   katselmoitua   ja   hyväksyttyäjulkaisuversiota (release) artefaktien joukosta, jota voidaan muuttaa vain formaalin muutostenhallinnan taikonfiguraationhallinnan kautta. Se vastaa sovittua pohjaa jatkokehitykselle ja evoluutiolle.  Julkaisuversioon   lopputuotteen   osajoukko,   joka   on   arvioinnin   kohteena   suurimmissa   virstanpylväissä.   Se   on   vakaa(stable), suoritettavissa oleva versio tuotteesta, johon kuuluu myös kaikki artefaktit, joita tarvitaan tuotteenkäyttöön,  kuten   julkaisutiedote   (release  notes)   tai  asennusohjeet.   Julkaisuversio voi  olla  sisäinen  taiulkoinen.  Sisäistä   julkaisuversiota  käyttää   kehitysorganisaatio   osana   virstanpylvästä   taidemonstroidakseen   sitä   käyttäjille   tai   asiakkaille.  Ulkoinen   julkaisuversio  taas   toimitetaanloppukäyttäjille.  Julkaisuversioiden avulla  voidaan paremmin  välttyä   ” 90% tehty,  90% jäljellä”syndroomalta.  Tässä   vaiheessa  varmistetaan   myös   projektin   rahoitus,   valitaan  ulkoiset   toimittajat   jossellaisia   tarvitaan.   Vaiheen   tarkoituksena   on   analysoida   sovellusalueen   ratkaisu,   jolle   ohjelmistonarkkitehtuuri   muodostetaan   ja   kehittää   kokonaisvaltainen   suunnitelma,   jossa   eri   riskielementit   otetaanhuomioon.  Vaiheen   tuloksena   syntyy  malli   systeemin   toiminnasta,   johon   sisältyy   systeemin  konteksti,skenaariot,   sovellusalueen   malli   (domain   model),   perustason   tuotevisio,   joka   perustuu   sovellusalueenmalliin, kehityssuunnitelma (development plan), arviointikriteerit sekä tuotteen julkaisun kuvaus (productrelease   description).   Tässä   vaiheessa   voidaan   tarvittaessa   kirjoittaa   myös   alustava   käyttöohje   jatestaussuunnitelma.   Suunnitteluvaiheen   virstanpylvästä   kutsutaan   nimellä   arkkitehtuuri­virstanpylväs(architecture milestone). Suunnitteluvaihetta seuraa  rakennusvaihe.

Rakennusvaihe  sisältää  ohjelmistotuotteen  ohjelmoimisen.  Vaiheen  tuloksena  syntyy  suoritettava  koodi,systeemi­   ja   käyttäjädokumentaatio,   käyttöönottosuunnitelma   sekä   joitain   laadunvarmistustuloksia.Vaiheen tuloksena voi syntyä  myös toiminnallinen prototyyppi (behavioral prototype).  Rakennusvaiheen

Page 7: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

virstanpylväänä   on   toimiva   tuote.   Vaiheen   virstanpylvään   nimeksi   on   annettu   operationaalisenkyvykkyyden virstanpylväs (operational capability milestone).

Viimeisenä   kehityssyklin   vaiheena   on  siirtymävaihe,   joka   sisältää   ohjelmistotuotteen   luovutuksenkäyttäjälle.  Tässä  vaiheessa  voidaan tehdä  myös pientä  loppuviimeistelyä  esimerkiksi  ohjelman mukanatuleviin tukimateriaaleihin tai itse ohjelmaan ja sen asetuksiin sekä  testata tuotteen toimivuus asiakkaanympäristössä tai sitä vastaavassa ympäristössä. Vaiheen tarvittaviin artefakteihin kuuluvat kaikki projektinvalmiit  artefaktit.  Tämän vaiheen virstanpylväänä  toimii  tuotteen julkaisu virstanpylväs (product releasemilestone).

3.2 Disipliineistä

UPEDU   käyttää   kuvassa   1   horisontaalisella   ulottuvuudella   olevista   toiminnoista   nimitystä   disipliini.Disipliini  on   roolien,   aktiviteettien   ja   artefaktien   integraatio,   joka   johtaa   mainittuja   osia   suurempaanentiteettiin. Prosessi taas muodostuu disipliinien joukosta. Disipliini voidaan kuvailla myös aktiviteettienjoukkona, missä  yhden aktiviteetin tulos (output)  on toisen aktiviteetin syöte (input).  Disipliinit  voidaansuorittaa   roolin   toimesta  missä   järjestyksessä   tahansa,   edellyttäen  kuitenkin,   että   disipliinin  käyttämätsyöteartefaktit ovat saatavilla. 

Disipliinejä  on kuusi  kappaletta:  vaatimustenhallinta,  analysointi   ja  suunnittelu,   implementointi,   testaus,konfiguraation ja  muutosten hallinta  sekä  projektin  hallinta.  Ne voidaan jakaa kahteen ryhmää:  kehitys(engineering) ja hallinta (management) ­disipliineihin. Kehitys­disipliineihin kuuluvat vaatimustenhallinta,analysointi   ja   suunnittelu,   implementointi   sekä   testaus.   Hallinta­disipliineihin   taas   konfiguraation   jamuutosten hallinta sekä projektin hallinta.

Kehitys­disipliineihin  kuuluvat   ohjelmistoprosessin   tekniset   aspektit   ja   ne   keskittyvät   artefaktien   jakehitettävään tuotteeseen liittyvien toimitettavien (deliverables) luomiseen. Asiakkaan tarpeet  muutetaanohjelmiston   vaatimuksiksi,   vaatimukset   ohjelmiston   malliksi   (design),   mallin   implementoidaankooditasolla ja lopuksi ohjelmisto testataan. Vaatimus­disipliini määrittelee käyttötapaus­kaavioiden avullasysteemin  käyttäytymisen.  Analyysi   ja   suunnittelu­disipliini  muuttaa  vaatimukset   spesifikaatioksi,   jokakertoo miten systeemi tulee implementoida eli tuloksena on suunnittelumalli (design model) toteutettavallejärjestelmälle.   Implementaatio­disipliini   määrittelee   koodin   organisoinnin,   toteuttaa   luokat   ja   objektit,testaa kehitetyt komponentit ja integroi ne suoritettavaksi systeemiksi. Testaus­disipliini arvioi tuotteessasaavutetun laadun tasoa ja raportoi tulokset.

Hallinta­disipliineihin  kuuluva   konfiguraation   ja   muutosten     hallinta   identifioi,   määrittelee   ja   asettaaperustason (baseline) tuotteeseen kuuluville osille. Perustaso antaa virallisen standardin, johon peräkkäinentyöskentely   perustuu   ja   johon   voidaan   tehdä   muutoksia   vain   ennalta   määritellynmuutostenhallintamenettelyn   avulla.   Tämä   disipliini   kontrolloi   siis   tuotteen   muutoksia   ja   tuotteenperustasoon kuuluvien osien julkaisuversioita. Disipliiniin kuuluu myös tuotteen osien ja muutospyyntöjentilan   kirjanpito   sekä   raportointi,   tuotteen   osien   täydellisyyden,   yhdenmukaisuuden,   oikeellisuudenvarmistaminen   sekä   tallennuksen,   käsittelyn   ja   toimituksen   kontrollointi   ja   hallinta.   Muutosten­   jakonfiguraationhallinta on keskeinen osa projektin laajuuden hallintaa.

Page 8: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

3.3 Miten UPEDU eroaa RUPista?

UPEDU­prosessi sisältää kaikki samat prosessin vaiheet kuin RUP­prosessikin, mutta joitakin disipliinejäon jätetty pois. Esimerkiksi UPEDU ei sisällä kehitysdisipliineihin kuuluvia liiketoiminnan mallintamis­ jakäyttöönotto­disipliiniä ja hallinta­disipliineissä ei ole erillistä ympäristö­disipliiniä. Syntyvien artefaktienmäärä  on huomattavasti  pienempi  UPEDU­prosessissa.  UPEDU sisältää  vain  37 prosenttia  alkuperäisenmallin artefakteista ja vain 10 prosenttia ohjeista (guidelines) [3]. RUP­prosessi on esitetty kuvassa 5.

                                Kuva 5. RUP­prosessi (vrt. Kuva 2).

4. Roolit

Rooli on abstrakti määritelmä aktiviteettien suorittajalle. Rooli on yleensä vastuussa joistakin artefakteista.Kehitystiimin jäsen voi ottaa roolin, mikä voi taas kuulua yksilölle tai ryhmälle. Roolin ajureina toimivataktiviteetit,   jotka   on   suoritettava   tiettynä   ajankohtana.   Yksittäisellä   henkilöllä   voi   olla   samanaikaisestiuseita eri rooleja. Yhtälailla usealla eri henkilöllä voi olla sama rooli ja he suorittavat samaa aktiviteettiä,jolloin kyseessä on ryhmälle kuuluva rooli. Roolit eivät ole yksilöitä, vaan ne kuvaavat yksilöiden vastuita.Roolien   ei   ole   tarkoitus   varsinaisesti   rajoittaa   aktiviteetteja,   joita   yksilö   voi   suorittaa,   vaan   painottaadisipliinien kognitiivisia aktiviteetteja, vaikka varsinkin suuremmissa projekteissa voi olla perusteltua, ettäjoidenkin   roolien  haltijat  olisivat  erillisiä  yksilöitä.  Suurin  osa   rooleista  realisoituu  kehitysorganisaationsisällä,   mutta   myös   kehitysorganisaation   ulkopuolisilla   rooleilla   on   tärkeä   merkitys.   Tällainenkehitysorganisaation   ulkopuolinen   rooli   on   esimerkiksi   osakas   (stakeholder).   Roolin,   aktiviteetin   jaartefaktin suhdetta selventää kuva 6.

Page 9: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

Kuva 6. Esimerkki roolista, aktiviteetista ja artefaktista [1].

Rooleilla  on  joukko yhteneväisiä   aktiviteetteja,   joita  ne  suorittavat.  Nämä  aktiviteetit   liittyvät   läheisestitoisiinsa ja ovat funktionaalisesti kytkettyjä. Yleensä tällaisen joukon aktiviteetteja suorittaa parhaiten samayksittäinen   henkilö.   Aktiviteetit   liittyvät   läheisesti   artefakteihin   niin,   että   artefaktit   ovat   aktiviteettiensyötteitä ja tulosteita. Artefaktit toimivat myös aktiviteettien välisenä informaation välityskeinona. UPEDU­prosessi   tunnistaa   ainakin   seuraavat   roolit:   analysoija   (analyst),   suunnitteluja   (designer),   implementoija(implementer), integroija (integrator), testaaja (tester), muutostenhallintavastaava (change control manager),konfiguraatiovastaava (configuration manager), projektipäällikkö (project manager), katselmoija (reviewer)ja osakas (stakeholder). Myös muita rooleja on mahdollista käyttää.

4.1 Analysoija

Systeemin   analysoija   (Analyst)   rooliin   kuuluu   johtaa   ja   koordinoida   vaatimusten   kehittämistä   sekäkäyttötapausten mallintamista rajaamalla systeemin toimintoja sekä itse systeemin. Analysoijalta vaaditaanhyvää   kommunikointitaitoa   sekä   liiketoiminnan   ja   teknologian   tietoutta.   Analysoijan   rooliin   kuuluviaaktiviteetteja ja artefakteja esittää kuva 7.

               Kuva 7. Analysoijan aktiviteetit ja artefaktit [1].

Page 10: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

4.2 Suunnittelija

Systeemin suunnittelijan (Designer) rooliin kuuluu komponenttien vastuiden, operaatioiden, attribuuttien jakomponenttien välisten riippuvuuksien määrittäminen.  Suunnittelija myös ratkaisee miten komponenttejasäädetään sopimaan implementaatioympäristöön. Suunnittelijan rooliin kuuluvia aktiviteetteja ja artefaktejaesittää kuva 8.

                            Kuva 8. Suunnittelijan aktiviteetit ja artefaktit [1].

Page 11: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

4.3 Implementoija

Systeemin implementoijan (Implementer), toisin sanoen toteuttajan, rooliin kuuluu vastuu komponenttienkehittämisestä ja testaamisesta käyttäen projektin standardeja. Nämä komponentit integroidaan myöhemminsuuremmiksi  kokonaisuuksiksi,    esimerkiksi  alijärjestelmiksi.  Jos komponenttien testaamisessa joudutaanluomaan ajureita  (drivers)  tai   tynkiä   (stubs),  kuuluu implementoijan vastuuseen luoda ja  testata kyseisettestauskomponentit ja niitä vastaavat alijärjestelmät. Implementoijalla tulee olla tarvittavat tiedot ja taidotsysteemistä   tai   sovelluksesta   jota   testataan.   Hänen   tulee   olla   perehtynyt   testaamiseen   ja   testaamisessatarvittaviin työkaluihin sekä testaamisen automatisoiviin työkaluihin. Hänellä  tulee olla lisäksi tarvittavatohjelmointitaidot. On suositeltavaa että implementoijan rooli, joka vastuussa alijärjestelmän toteuttamisesta,on   vastuussa   myös   alijärjestelmien   sisältämistä   komponenteista.   Implementoijan   rooliin   kuuluviaaktiviteetteja ja artefakteja esittää kuva 9.

                                           Kuva 9. Implementoijan aktiviteetit ja artefaktit [1].

Page 12: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

4.4 Integroija

Integroijan (Integrator) vastuuseen kuuluu komponenttien yhdistäminen käännöksen (build) tuottamiseksi.Käännös  on  operationaalinen  versio  systeemistä   tai   sen  osasta,   joka  demonstroi   lopulliseen   tuotteeseentulevien kyvykkyyksien (capabilities) osajoukkoa..  Integroitavat komponentit saadaan integrointi­työtilaan(eng.   integration   workspace)   implementoijilta   testattuina.   Integroija   on   vastuussa   myös   integroinninsuunnittelemisesta,  joka tehdään järjestelmä   tai  alijärjestelmätasolla,   joilla  jokaisella  on oma integrointi­työtilansa.  Testatut  komponentit   toimitetaan implementoijan omasta työtilasta  alijärjestelmän integrointi­työtilaan.   Integroidut   alijärjestelmät   toimitetaan   alijärjestelmien   integrointi­työtilasta   järjestelmänintegrointi­työtilaan.   Integrointi   tapahtuu   siis   systemaattisesti.   Erityisesti   pienissä   projekteissa   taialijärjestelmien integroinnissa voi olla tarpeellisesta että integroija toimii myös testaajan roolissa. Hänellävoi   olla   vielä   lisäksi   myös   implementoijan   rooli.   Tällä   voidaan   joskus   saavuttaa   henkilöresurssientehokkaampi käyttö, mutta varsinkin järjestelmätason integroinnissa on yleensä parempi että integrointi jatestaus suoritetaan eri tiimeissä. Integroijan rooliin kuuluvia aktiviteetteja ja artefakteja esittää kuva 10.

                                                  Kuva 10. Integroijan aktiviteetit ja artefaktit [1].

Page 13: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

4.5 Testaaja

Testaaja (Tester) on vastuussa testauksen ydinaktiviteeteista. Niihin kuuluu tarvittavien testien suoritus jatestauksen tuloksen kirjaus. Testaajan tulee identifioida sopivin implementointitapa testille, implementoidayksittäiset testit, valmistella testausympäristö testien suorittamista varten ja suorittaa testit, kirjata tuloksetja   verifioida   testauksen   suoritus.   Myös   suorituksessa   tapahtuvien   virheiden   analysointi   ja   virheistätoipuminen   kuuluu   testaajan   vastuulle.   Testaajalla   tulee   olla   tietämystä   erilaisista   testaamisenlähestymistavoista   ja   tekniikoista,  diagnostisia   taitoja  sekä  ongelmanratkaisutaitoja.  On  toivottavaa,   ettätestaajalla   on   tietämystä   systeemistä   tai   sovelluksesta   jota   testataan   sekä   tietoverkoista   jajärjestelmäarkkitehtuureista. Tarvittavat tiedot ja taidot riippuvat pitkälti siitä, millaisia testejä suoritetaan jamissä vaiheessa projektin elinkaarta. Jos testauksessa käytetään testaamisen automatisoivia työkaluja, tuleetestaaja   olla   lisäksi   koulutettu   käyttämään   kyseistä   työkalua,   kokemusta   testauksenautomatisointityökaluista, ohjelmointitaitoja sekä diagnostisia ja virheiden etsintä ja poisto (eng. debugging)­taitoja. Testaajan roolia annettaessa tulee ottaa huomioon ainakin mahdollisten testaajakandidaattien taidotja kokemus testaamisesta sekä tiimin koko. Esimerkiksi suurissa tiimeissa voi olla tehokkainta antaa yhdelletai   useammalle   tiimin   jäsenelle   ainoastaan   testaajan   rooli.   Testaajan   rooliin   kuuluvia   aktiviteetteja   jaartefakteja on esitetty kuvassa 11.

                                    Kuva 11. Testaajan aktiviteetit ja artefaktit [1].

Page 14: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

4.6 Muutostenhallintavastaava

Muutostenhallintavastaava   (Change  Control  Manager)  valvoo  muutostenhallintaprosessia.  Tässä   roolissatoimii  yleensä   konfiguraation   (tai  muutosten)  hallinta  neuvosto   (Configuration  –  tai  Change  – ControlBoard,   CCB).  Neuvostoon   kuuluu   kaikkien   eri   intressiryhmien   edustajia,   kuten   asiakkaita,   kehittäjiä,käyttäjiä.     Pienessä   projektissa   roolin   voi   täyttää   vain   yksittäinen   henkilökin,   kuten   esimerkiksiprojektipäällikkö   tai   ohjelmistoarkkitehti.  Muutostenhallintavastaava  määrittelee   myös   muutospyyntöjenhallintaprosessin,   joka   dokumentoidaan   Konfiguraationhallintasuunnitelmaan   (eng.  ConfigurationManagement Plan). Muutostenhallintavastaavan tulee osata arvioida muutospyyntöjen vaikutuksia projektinkustannuksiin   ja   aikatauluun.   Hänen   tulee   osata   kommunikoida   tehokkaasti   neuvotellakseen   projektinlaajuuden  muutoksista   ja  päätelläkseen  miten   jokainen  muutospyyntö   tulee  käsitellä   ja  kenen   toimesta.Muutostenhallintavastaavan rooliin kuuluvia aktiviteetteja ja artefakteja esittää kuva 12.

                                             Kuva 12. Muutostenhallintavastaavan aktiviteetit ja artefaktit [1].

Page 15: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

4.7 Konfiguraatiovastaava

Konfiguraatiovastaava   (Configuration   Manager)   tarjoaa   yleisen   konfiguraationhallintainfrastruktuurin   jaympäristön kehitystiimille. Konfiguraationhallinta tukee tuotteen kehitysaktiviteettia tarjoamalla kehittäjilleja integroijille sopivat työtilat, joissa rakentaa ja testata työtään niin, että kaikki artefaktit ovat tarvitttaessasaatavilla   kyseiseen   kehitysversioon.   Konfiguraatiovastaavan   on   myös   pidettävä   huolta   siitä,   ettäkokoonpanoympäristö   helpottaa   tuotteen   tarkastus,   muutos   ja   vianjäljitys   aktiviteetteja.   Hän   kirjoittaakonfiguraationhallinnasta   suunnitelman   ja   raportoi   edistymis­statistiikoista,   jotka   perustuvatmuutospyyntöihin. Konfiguraatiovastaavan tulee ymmärtää  konfiguraationhallintaan liittyvät periaatteet jahänellä   tulee   olla   koulutusta   tai   kokemusta   kokoonpanonhallintatyökaluista.   Hän   kiinnittää   huomitotayksityiskohtiin   ja   on   vakuuttava   ja   jämäkkä,   jotta   kehittäjät   eivät   sivuuta   kokoonpanonhallinnanmenettelytapoja ja proseduureja. Kokoonpanonhallintavastaavan rooliin kuuluvia aktiviteetteja ja artefaktejaesittää kuva 13.

                                          Kuva 13. Kokoonpanovastaavan aktiviteetit ja artefaktit [1].

Page 16: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

4.8 Projektipäällikkö

Projektipäällikkö   (Project   Manager)   koordinoi   vuorovaikutusta   asiakkaan   ja   käyttäjien   kanssa,   allokoiresursseja   ja  priorisoi.  Hän pitää  projektin   tiimin  fokuksen  oikeissa  asioissa.  Projektipäällikön  tehtäviinkuuluu   myös   vakiinnuttaa   käytännöt,   joiden   avulla   projektin   artefaktien   integriteetti   ja   laatu   voidaanvarmistaa. Projektipäälliköltä vaadittuihin tietoihin ja taitoihin vaikuttaa mm. projektin koko sekä tekninenja hallinnollinen monimutkaisuus. Hänellä on hyvä olla kokemusta sekä sovellusalueesta että ohjelmistojenkehittämisestä.   Häneltä   vaadittavia   taitoja   ovat   esimerkiksi   riskien   analysointi   ja   hallinta,   estimointi,suunnittelu,   päätösanalysointi.   Hän   on   fokusoitunut   tuottamaan   asiakkaalle   arvoa,   osaa   esiintyä,kommunikoida   ja   neuvotella,   osaa   objektiivisesti   ja   totuudenmukaisesti   arvioida   tuotoksia,   onkäytännönläheinen   projektin   laajuutta   arvioidessaan   sekä   implementoidessaan   suunnitelmia.Projektipäällikön rooliin kuuluvia aktiviteetteja ja artefakteja esittää kuva 14.

                                           

                                            Kuva 14. Projektipäällikön aktiviteetit ja artefaktit [1].

Page 17: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

4.9 Katselmoija

Katselmoijan   (Reviewer)   tehtäviin   kuuluu   formaalien   katselmuksien   suunnittelu   ja   pitäminen   eridisipliineissä. Katselmoinnilla voidaan tarkoittaa tässä yhteydessä siis epäformaalia katselmusta, tarkastustatai   läpikäyntiä.   Katselmoijalta   vaaditaan   yksityiskohtaisia   tietoja   käytetyistä   fasilitaatio   jamallinnustekniikoista   sekä   jonkin   verran   liiketoiminnan   ja   teknologian   tietämystä.   Katselmoitaviaartefakteja voivat olla mm. ohjelmiston vaatimukset,  lähdekoodi,    arkkitehtuuri ja suunnitteludokumentitsekä  projektisuunnitelma. Katselmoijan aktiviteetteja ja artefakteja on esitetty kuvassa 15.

                                           Kuva 15. Katselmoijan aktiviteetit ja artefaktit [1].

4.10 Osakas

Osakkaat   (Stakeholders)   ovat   yksilöitä   tai   organisaatioita,   joilla   on   joko   suora   tai   epäsuora   vaikutussysteemille   asetettuihin   vaatimuksiin   liittyviin   artefakteihin   ja   joihin   kehityksen   tuloksena   syntyväjärjestelmä   vaikuttaa.   Tähän   ryhmään   kuuluu   esimerkiksi   järjestelmän   loppukäyttäjät,     ohjelmistonkehitysprojektin projektipäälliköt, ihmiset jotka ovat tekemisissä sellaisten organisaation prosessien kanssa,joihin   kehityksen   tuloksena   syntyvä   järjestelmä   vaikuttaa,   kehittäjät   jotka   ovat   vastuussa   järjestelmänkehittämisestä ja ylläpidosta, organisaatio joka käyttää järjestelmää tarjotakseen asiakkailleen palveluja sekäulkoiset henkilöt kuten lain sääntelijät (regulators) ja sertifiointeja antavat asiantuntijat. Yleensä osakkaillaon   toisistaan   eriävät   näkökulmat   järjestelmän   ratkaisemaan   ongelmaan   ja   myös   erilaiset   tarpeet,   jotkaratkaisun   tulee   ottaa   huomioon.   Toimivan   ratkaisun   kehittämiseksi   on   keskeistä   tunnistaa   keitä   nämäosakkaat  ovat   ja  mitä   vaatimuksia  heillä   on.  Erilaisia   osakkaita   ovat   esimerkiksi   asiakas   tai   asiakkaanedustaja, käyttäjä tai käyttäjän edustaja, sijoittaja, osakkeenomistaja, tuotantojohtaja, hankkija, suunnittelija,testaaja sekä dokumentoija jne.

Page 18: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

4.11 Muut roolit

Jokainen   UPEDU­prosessin   tunnistama   rooli,   jolle   on   annettu   tarvittavat   pääsyoikeudet,   voi   käyttääkokoonpanonhallintajärjestelmää hakeakseen (check­out) sieltä  tai lisätäkseen (check­in) sinne tuotteeseenliittyviä artefakteja. Jokaisella roolilla on myös oikeus lisätä omistamiaan muutospyyntöjä ja päivittää niitä.Kaikille rooleille yhteisiä aktiviteetteja ja artefakteja esittää kuva 16.

                             Kuva 16. Kaikille rooleille yhteiset aktiviteetit ja artefaktit [1].

5. Aktiviteeteista

Aktiviteetti   tarkoittaa   tehtävän luonnetta.  Aktiviteetteja  ovat  esimerksi  analysointi,  koodaus,  suunnittelu,testaus ja niin edelleen. Jokaiseen disipliiniin kuulu joukko määriteltyjä aktiviteetteja. Aktiviteetti on työnpienin osa, jota voidaan myös mitata. Mittaus voi  kohdistua vaikkapa käytettyyn työmäärään. Aktiviteettivoidaan ajatella myös toiminnaksi, jonka suorittaa henkilö, jolla on jokin tietty rooli. Aktiviteetit asetetaansiis jonkin tietyn roolin suoritettavaksi. Aktiviteetilla täytyy olla selvä tarkoitus, kuten esimerkiksi artefaktinluominen tai päivittäminen. 

Useimpiin   UPEDUn   aktiviteetteihin   on   olemassa   ohjeistuksia,   joiden   avulla   saa   paremman   kuvanaktiviteetistä   ja   sen   erilaisista   suoritustavoista.   Ohjeistuksia   löytyy   esimerkiksi   osoitteestahttp://www.upedu.org/upedu/ (kohta: Overview ­> Guidelines). 

Page 19: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

6. Artefakteista

Artefaktit   tallentavat   ja   välittävät   projektissa   tarvittavaa   informaatiota.   Ohjelmiston   kehitysprosessimäärittelee   tarvittavat   artefaktit.   Artefakteja   ovat   esimerkiksi     visio­dokumentti,   vaatimusmäärittely(Software   Requirement   Specification,   SRS),   arkkitehtuuridiagrammi,   UML­diagrammit,   lähdekoodi,testiskriptit,   suoritettava   koodi,   tiedostot   ja   käyttöopas.   Artefaktit   ovat   aktiviteettien   tuotoksia   ja   niitäkäytetään   myös   aktiviteettien   syötteinä.   Ne   voivat   muodostua   toisista   artefakteista,   esimerkiksisuunnittelumalli   (eng.   design   model)   sisältää   tavallisesti   useita   aftefakteja,   esimerkiksi   luokkia   taialijärjestelmiä. Tärkeimpiä UPEDU­prosessin artefakteja on esitetty kuvassa 17.

                                Kuva 17. UPEDU­prosessin artefakteja [1].

UPEDU   käyttää   laajasti   hyväkseen   UML­kuvauskieltä   (Unified   Modeling   Language),   joka   soveltuuerityisesti   komponentti­   ja   olioperustaisen   ohjelmiston   kehitykseen.   UPEDUssa   malleihin   ja   mallienelementteihin liittyy raportteja, jotka keräävät työkalu­ohjelmissa olevien tuotoksien informaation.  Raporttivoi  olla  artefakti   tai   joukko artefakteja.  Suurimmalle  osalle  artefakteja  on olemassa ohje,   joka kuvaileeartefaktin tarkemmalla tasolla.

Useimpiin   artefakteihin   on   olemassa   mallipohja   ja   Case­tapaus,   joiden   avulla   saa   paremman   kuvanartefaktista   ja   sen   käytöstä.   Näitä   löytyy   esimerkiksi   osoitteesta   http://www.upedu.org/upedu/   (kohta:Artifact Sets ­> Templates...).  Ohjelmistoprojektityö­kurssilla tullaan käyttämään kuitenkin juuri kyseistäkurssia varten luotuja dokumenttipohjia.

7. Disipliinit

7.1 Vaatimustenhallinta-disipliini

Vaatimustenhallinta­disipliini koostuu joukosta aktiviteetteja,  joiden tarkoituksena on johtaa mm. Visio­dokumenttia   apuna   käyttäen   järjestelmän   vaatimukset   sekä   validoida   ja   ylläpitää   näitä   vaatimuksia.Vaatimuksia   voidaan   pitää   sopimuksen   perustana   asiakkaan   ja   kehitysorganisaation   välillä.Vaatimustenhallintaprosessia   kehitettäessä   tulee   ottaa   huomioon   kehitettävän   tuotteen   tyyppi   sekäorganisaation  kulttuuri   ja  kokemuksen  taso.  Vaatimustenhallinta­disipliinin   tarkoitus  on  mm.  varmistaa

Page 20: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

perusta   ohjelmistoprosessiin   kuuluvien   tahojen   väliselle   kommunikaatiolle.   Vaatimustenhallinnanaktiviteetteja   on   kuvattu   mm.   SEIn   (Software   Engineering   Institute)   kehittämässä   ohjelmistoprosessinkypsyysmallissa (Software Capability Maturity Model, SW­CMM).

7.1.1 Tarkoitus

Vaatimustenhallinta­disipliinin tarkoitus on [1]:– Saavuttaa ja ylläpitää asiakkaiden ja muiden sidosryhmien kanssa yhteisymmärrys siitä, mitä

systeemin tulisi tehdä– Tarjota järjestelmän kehittäjille parempi ymmärrys systeemin vaatimuksista– Määritellä systeemin rajat– Tarjota pohja iteraatioiden teknisen sisällön suunnitteluun– Tarjota pohja systeemiin liittyvien kustannusten ja ajankäytön arviointiin– Määritellä systeemille käyttöliittymä, keskittyen käyttäjien tarpeisiin ja päämääriin

Vaatimustenhallinta­disipliiniin kuuluu mm. seuraavien asioiden määrittäminen: dokumentointi­formaatti,mallinnuskielen   formaliteetti,   vaatimusten   relatiivinen  prioriteetti,   tarvittavan   työn  määrä   per  vaatimus,tekniset ja johtamiseen liittyvät riskit sekä alustava arvio ohjelmiston kehitysprojektin laajuudesta. Suurissaorganisaatioissa   voidaan   tarvita   vielä   mm.   konseptin   tutkimusta,   toteutettavuustutkimusta,   tarpeidenselostusta, vision kehittämistä jne.

7.1.2 Roolit ja aktiviteetit

Vaatimustenhallinta­disipliini koostuu viidestä aktiviteetista, joista ensimmäiset neljä suorittaa analysoija javiimeisen katselmoija.  Analysoijan  tehtäviin  kuuluu osakkaan vaatimuksen selvittäminen,   toimijoiden  jakäyttötapausten etsiminen, käyttötapausten strukturointi ja käyttötapausten tarkentaminen. Katselmoija taaskatselmoi vaatimukset . Vaatimustenhallinta­disipliinin roolit ja aktiviteetit on esitetty kuvassa 18.

                             Kuva 18. Vaatimustenhallinta­disipliiniin kuuluvat roolit ja aktiviteetit [1].

Page 21: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

7.1.3 Artefaktit

Vaatimustenhallinta­disipliinin artefaktit jakautuvat kolmeen ryhmään: syöte­, deskriptiiviset ja mallinnus­artefaktit. Syötteenä toimiviin artefakteihin kuuluu visio­dokumentti (Vision) ja sanasto (Glossary). Visio­dokumentti on itse asiassa koko UPEDU­prosessin syöteartefakti. Sanasto on osaksi myös deskriptiivinen,koska tämä artefakti valmistuu järjestelmän spesifikaation edistyessä. Deskriptiivisiin artefakteihin sisältyyohjelmiston   vaatimusmäärittely,   täydentävä   spesifikaatio   sekä   sanasto.   Mallinnusartefakteihin   sisältyvätsekä käyttötapaukset (Use case) että käyttötapausmallit (Use Case Model). Vaatimustenhallinta­disipliininartefaktit on esitetty kuvassa 19.

                                Kuva 19. Vaatimustenhallinta­disipliinin artefaktit [1].

Visio­dokumentti  on tarkoitettu antamaan korkean tason kuvaus osakkaille kehitettävästä  tuotteesta ja senlaatii tavallisesti ei­tekniset ihmiset. Vaatimusmäärittelyn tavoin myös visio­dokumenttia voidaan käyttääsopimuksena   projektin   aloittamiselle.   Visio­dokumentti   sisältää   suurimman   osan   funktionaalisistavaatimuksista narratiivisessa muodossa. Visio­dokumentti ei kuitenkaan ole osa UPEDU­prosessia, koska seoletetaan olevan saatavilla ja sitä käytetään ainoastaan syöte­artefaktina. Dokumentti keskittyy kuvaamaankäyttäjien tarpeita, päämääriä ja tavoitteita, kohdemarkkinoita, käyttäjäympäristöä ja alustaa sekä tuotteenominaisuuksia. Se on tärkeä syöte projektin hyväksymisprosessissa ja vastaa kysymyksiin mitä ja miksi.

Sanasto sisältää tärkeät termit, joita käytetään tietyn ongelma­alueen terminologian määrittelyssä. Sanasto­artefakteja on vain yksi kappale koko järjestelmälle.

Järjestelmän  vaatimuksia   tulee  käsitellä   pakettina,   jonka  osia  voi   löytyä   eri   artefakteista   ja  ohjelmista.Vaatimusmäärittely  (eng.  Software requirement  specification,  SRS) sisältää   täydelliset  vaatimukset  kokojärjestelmälle tai sen osalle.  Ei­funktionaaliset vaatimukset tallennetaan täydentävään spesifikaatioon (eng.supplementary   specification).  Vaatimusmäärittely  voidaan   jakaa   esimerkiksi   IEEE  830­1993   standardinmukaisesti kolmeen osioon, jotka ovat:– Osio 1: vaatimusmäärittelyn tarkoitus ja laajuus– Osio 2: tekijät, jotka vaikuttavat tavoiteltuun järjestelmään ja sen vaatimuksiin– Osio 3: ohjelmiston vaatimukset

Page 22: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

Vaatimusmäärittelyn sisältö voi vaihdella riippuen käytetystä tavasta, jolla vaatimukset kehitetään. Hyvinrakennetun   vaatimusmäärittelyn   tunnusmerkkejä   voidaan   käyttää   apuna   dokumentin  rakennettasuunniteltaessa   ja   osana   ohjeistusta   dokumentin   kirjoittajille   sekä   lisäksi   vielä   arviointiperusteinakatselmuksessa.  Vaatimusmäärittelyn laatu­attribuutteja löytyy esimerkiksi standardista  ISO 9126 (kohta:Information technology ­> Software product evaluation ­> Quality characteristics and guidelines for theiruse).

Täydentävä   spesifikaatio  sisältää   järjestelmän   ei­funktionaaliset   vaatimukset.   Ne   asettavat   ulkoisiarajoitteita siihen, miten systeemi voidaan kehittää. Spesifikaatio voi sisältää myös rajoitteita, jotka liittyvätsysteemin  ylläpitoon.  Ei­funktionaalisia  vaatimuksia  voivat  olla  esimerkiksi,  käytettävyys,   luotettavuus,tehokkuus, tuettavuus ja suunnittelun rajoitteet. 

Vaatimusten   kehitykseen   kuuluu   lisäksi   systeemin   rajojen   määritys.   Vaatimuksien   selvittämiseen   onolemassa useita metodeja, joita ovat esimerkiksi:– henkilökohtainen haastattelu– työpajan pitäminen, jossa voidaan käyttää esimerkiksi seuraavia metodeja:

– aivoriihi– kuvakäsikirjoitus– roolipeli– olemassa olevien vaatimusten katselmus– selvittämättömien asioiden lista, jossa jokaiselle merkinnälle annetaan vastuuhenkilö sen

selvittämisestä–  prototyyppien käyttö, joita ovat esimerkiksi:

– pois heitettävä proto– evolutionäärinen proto– operationaalinen proto

7.1.4 Työnkulku

Jokainen   työnkulun   kohta   edustaa   avaintaitoa,   jota   pitää   soveltaa   tehokkaan   vaatimustenhallinnansuorittamiseksi.  Ongelman  analysointi   ja  ymmärtäminen kuuluu  kehityssyklin  alkuvaiheeseen  (inceptionphase),  kun   taas  systeemin  määrittely   ja  määrityksen  hiominen  kuuluu   suunnitteli­/tarkennusvaiheeseen(elaboration phase). Järjestelmän laajuutta ja muuttuvia vaatimuksia hallitaan koko projektin ajan. Kuvassa20 oleva työnkulku on esimerkki  todennäköisestä   tehtävien suoritusjärjestyksestä  ensimmäisen iteraationaikana,   mutta   tehtävien   suoritusjärjestys   voi   olla   vaihteleva   varsinkin   palattaessa   esitettyihin   tehtäviinuudelleen. 

Page 23: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

                                             Kuva 20. Vaatimustenhallinta­disipliinin työnkulku [1].

7.1.5 Suhde muihin disipliineihin

Analysointi   ja   suunnittelu­disipliini   saa   primäärisen   syötteensä   vaatimuksista.   Se   käyttää   syötteenäänvaatimustenhallinta­disipliinin  aktiviteettien  avulla   tuotettua käyttötapausmallia  (eng.  use  case  model)  jasanastoa. Analysointi ja suunnittelu­vaiheessa voidaan löytää virheitä käyttötapausmallista, jolloin virheestätehdään   muutospyyntö   ja   lopuksi   muutos   toteutetaan   käyttötapausmalliin.   Testaus­disipliini   validoisysteemin  käyttäen   apunaan  esimerkiksi  käyttötapausmallia.  Käyttötapaukset   ja   täydentävä   spesifikaatiotoimivat   syötteenä   vaatimuksille,   joiden  avulla   testaus­disipliiniin  kuuluva  arviointitehtävä  määritellään,sekä   ne   toimivat   syötteinä   myös   peräkkäisille   testeille   ja   arviointiaktiviteeteille.   Konfiguraation   jamuutostenhallinta­disipliini   tarjoaa   muutostenhallintamekanismin   vaatimuksille.   Muutoksen   ehdotustapahtuu   jättämällä   muutospyyntö,   jonka   arvioi   muutostenhallintaneuvosto.   Projektinhallinta­disipliininaktiviteettien avulla  suunnitellaan projekti  ja siihen kuuluvat  iteraatiot.  Käyttötapausmalli  ja ohjelmistonkehityssuunnitelma ovat tärkeitä syötteitä iteraatioiden suunnitteluaktiviteeteille.

7.2 Analysointi ja suunnittelu-disipliini

Analysoinnin tarkoituksena parantaa ymmärrystä asiakkaalle kehitettävästä ratkaisusta. Se on kognitiivinenprosessi,   jossa   informaatiota   lisätään   olemassa   olevaan   tietoon.   Analogiana   tälle   prosessille   onkristallisaatioprosessi, jossa informaatioelementtejä määritellään progressiivisesti ja sidotaan yhteen, aivankuten molekyylejä kristalliin. Suunnittelu on myös kognitiivinen prosessi ja sen tarkoituksena on kehittääinformaatiorakenne.   Informaatiorakenne   syntyy   perustamalla   linkkejä   olemassa   olevien   informaatio­osasten   välille.   Suunnitteluaktiviteetit   voidaan   aloittaa   vasta   kun   analysointi   on   tuottanut   sopivankonsentraation informaatiota. Analysointi ja suunnittelu voidaan kuitenkin yhdistää monellakin eri tavallaEsimerkiksi  analysointi  voi  olla  olennainen  osa  suunnitteluaktiviteetteja,  kun  molemmat  aktiviteetit  onyhdistetty toisiinsa, mutta ne voidaan suorittaa myös erillisinä  aktiviteetteina. Analysointi ja suunnittelu­disipliinin tarkoituksena on analysoida ja suunnitella systeemi, joka toimii suunnitellussa implementaatio­ympäristössä ja suorittaa ne tehtävät ja toiminnot, jotka on määritelty käyttötapaus kuvauksissa. Tuloksenaolevan systeemin on täytettävä kaikki sille asetetut vaatimukset ja systeemin rakenne on oltava tarpeeksijoustava, jotta se tukee funktionaalisten vaatimusten ja ympäristölle asetettujen rajoitusten muuttumista japäivitystä.  UPEDU­prosessi  näkee  analysointi   ja   suunnittelu­disipliinin  keskeiseksi   laadun määrääjäksi,koska kyseinen disipliini on vastuussa tuotteen luomisesta.

Page 24: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

7.2.1 Tarkoitus

Analysointi ja suunnittelu­disipliinin tarkoitus on [1]:– muuttaa vaatimukset suunnitelmaksi kehitettävästä järjestelmästä– kehittää vakaa ja joustava arkkitehtuuri järjestelmälle– mukauttaa järjestelmän suunnitelma vastaamaan implementaatioympäristöä ja suunnitella se tehokkuus

mielessä pitäen

7.2.2 Roolit ja aktiviteetit

Analysointi ja suunnittelu­disipliinissä suunnittelija määrittelee järjestelmän arkkkitehtuurin arkkitehtuurinanalysointi­aktiviteetin   avulla   tehden   samalla   myös   käyttötapausten   analysointia.   Käyttötapauksiaanalysoidessa saattaa samalla joutua päivittämään arkkitehtuuria, jotta se vastaisi systeemin muuttunuttakäyttäytymistä.   Suunnittelija   kasvattaa   systeemin   suunnitelmaa   (design)   lisäämällä   ja   tarkentamallakäyttötapauksia   ja   luokkia.   Katselmoijan   tehtäviin   kuuluu   arkkitehtuurin   ja   systeemin   suunnitelmantarkastus. Analysointi ja suunnittelu­disipliinin roolit ja aktiviteetit on esitetty kuvassa 21.

         Kuva 21. Analysointi ja suunnittelu­disipliinin roolit ja aktiviteetit [1].

7.2.3 Artefaktit

Tämän   disipliinin   artefakteja   ovat   analyysiluokka   (Analyses   Class),   käyttötapausrealisaatio   (Use­CaseRealization),   suunnitteluluokka   (Design  Class)   ja  suunnittelumalli   (Design  Model).  Analyysiluokat  ovatsysteemin prototyyppimäisiä luokkia. Niiden tärkein sisältö on luokan stereotyyppien määritelmät,jotka   kuvaavat   esimerkiksi   raja­,   ohjaus­   tai   entiteettiluokkia.  Käyttötapausrealisaatio  kuvaayhteistyössä   olevien   objektien   avulla,   miten   tietty   käyttötapaus   on   realisoitu   järjestelmänsuunnittelumallissa.   Käyttotapausrealisaatio   on   käyttötapauksen   suunnitteluperspektiivi.   Sentarkoituksena on eriyttää systeemin spesifikaatioon ja systeemin suunnitelmaan liittyvät kysymyksettoisistaan. Suunnitteluluokka on sellaisen objektijoukon kuvaus, joilla on samat vastuut,  suhteet,attribuutit   ja   merkitykset.   Luokat   määrittelevät   objekteja   jotka   realisoiva,   toisin   sanoenimplementoivat,   käyttötapauksia.  Suunnittelumalli  on   objektimalli,   joka   kuvaa   käyttötapaustenrealisaation ja  toimii  abstraktiona implementaatiomallille   ja sen lähdekoodille.  Suunnittelumallia

Page 25: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

käytetään   keskeisenä   syötteenä   implementaatio­   ja   testausdisipliinin   aktiviteeteille.   Tärkeimmätanalyysi ja suunnittelu­disipliinin artefaktit on esitetty kuvassa 22.

           Kuva 22. Tärkeimmät analysointi ja suunnittelu­disipliinin artefaktit [1].

7.2.4 Työnkulku

Alkuvaiheessa   analyysi­   ja   suunnittelu­disipliinissä   tarkastellaan   onko   visioitu   systeemitoteuttamiskelpoinen   ja   minkälaisia   potentiaalisia   teknologiaratkaisuja   voitaisiin   käyttää.   Joskehitykseen liittyvät riskit tuntuvat pieniltä esimerkiksi sovellusalueen hyvän tuntemuksen vuoksi,voidaan tämä alkutarkastelu jättää pois. 

Varhainen   suunnittelu­/tarkennusvaihe  keskittyy   alustavan   arkkitehtuurin   luomiseen   systeemille.Kun kaikki alustavat elementit on identifioitu, niitä tarkennetaan kasvattamalla systeemin mallia.Tuloksena   on   alustava   joukko   luokkia,   joita   vielä   tarkennetaan   implementaatio­disipliinissä.Analyysi­ ja suunnitteludisipliini työkulku on esitetty kuvassa 23.

        Kuva 23. Analyysi ja suunnittelu­disipliinin työnkulku [1].

Page 26: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

7.2.5 Suhde muihin disipliineihin

Vaatimustenhallinta­disipliini   tarjoaa   primäärisen   syötteen   analysointi   ja   suunnittelu­disipliinille.Implementaatio­disipliini   tarjoaa  ohjelmiston  komponenttirakenteen,   jota  käytetään  kehitysympäristössä.Projektinhallinta­disipliini suunnittelee projektin ja siihen kuuluvat iteraatiot.

7.3 Implementaatio-disipliini

Implementaatio   yhdistetään   usein   ohjelmointitehtäviin   ohjelmiston   kehitysprosessissa.   Tämä   disipliinimerkkaa   kristallisaatioprosessin   (katso   kohta   7.2)   valmistumista.   Suunnitteluartefaktien   muuttaminenohjelmakoodiksi tulee suunnitella hyvin ja tulos validoida yksikkötestauksen avulla. 

7.3.1Tarkoitus

Implementaatio­disipliinin tarkoitus on [1]:– määritellä koodin organisaatio alijärjestelmien avulla, jotka organisoidaan tasoiksi– implementoina luokat ja objektit komponenttien (lähdekoodi­tiedostot, binääri­tiedostot, 

suoritetustiedostot ja muut) tasolla– testata kehitetyt komponentit yksikköinä– integroida eri implementoijien (tai tiimien) tuotokset ajettavaksi järjestelmäksi

7.3.2  Roolit ja aktiviteetit

Implementaatio­disipliinissä   implementoija   suunnittelee   komponenttien   integraation,   implementoikomponentit, tekee yksikkötestausta sekä korjaa löytyneitä virheitä. Implementoijien tulee pitää huoli siitä,että dokumentaatio pysyy ajan tasalla koko rakennusvaiheen ajan. Katselmoija tarkastaa koodin ja integroijasuunnittelee systeemitason integroinnin ja toteuttaa sen. Katselmoijan rooli on avain koodin hyvään laatuunja koodin yhdenmukaisuuteen suhteessa koodaussuosituksiin. Pienissä projekteissa integroijan rooli saattaaolla triviaali. Implementaatio­disipliinin roolit ja aktiviteettit on esitetty kuvassa 24.

                    Kuva 24. Implementaatio­disipliinin roolit ja aktiviteetit [1].        

Page 27: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

7.3.3 Artefaktit

Implementaatio­disipliinin artefakteja ovat komponentit, implementaatiomalli ja ­dokumentti sekä käännös(build). Lisäksi koodin tarkastuksesta syntyy tarkastuspöytäkirja. Pientä systeemiä kehitettäessä saattaa ollaperusteltua   vain   yhden   käännöksen   toteuttaminen.  Käännös  on   operationaalinen   versio   täydellisestäjärjestelmästä tai sen osasta. Implementaatio­disipliinin lopullisia tuotteita ovat suoritettavat komponentit,jotka   on   johdettu   paketeista   ja   niiden   sisältämistä   komponenteista.   Paketit   ja   niiden   komponentitpohjautuvat   luokkiin   ja   luokkakaavioihin,   jotka   taas   on   johdettu   käyttätapauskaaviosta.   Joitain   muitakaavioita,   kuten   tila­   tai   yhteistyökaavioita,   saatetaan   tarvita   luokkien   kuvaamisessa.   Jos   kehitettäväsysteemi on pieni, systeemin implementaatiomalli voi olla hyvinkin samanlainen kuin sen suunnittelumalli .Implementaatiomallia   voidaan   käyttää   apuna   työn   jakamisessa   itse   implementoijille.   Implementaatio­disipliinin tärkeimmät artefaktit on esitetty kuvassa 25.

                        Kuva 25. Implementaatio­disipliinin tärkeimmät artefaktit [1].

7.3.4 Työnkulku

Implementaatio­disipliini   rajaa   laajuuden,   jolla   yksittäiset   luokat   yksikkötestataan.   Systeemi­   jaintegrointitestit kuuluvat testaus­disipliiniin. Jokaisessa iteraatiossa, alkaen suunnittelu/tarkennus­vaiheesta,kehitetään integrointisuunnitelma (eng. Integration Plan), implementoidaan komponentit sekä integroidaanne systeemiin. Implementaatio­disipliinin työnkulku on esitetty kuvassa 26.

Kuva 26. Implementaatio­disipliinin työnkulku [1].

Page 28: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

7.3.5 Suhde muihin disipliineihin

Vaatimustenhallinta­disipliini   kuvaa   kuinka   kerätä   käyttötapausmalleiksi   vaatimukset,   jotkaimplementaation   tulisi   täyttää.   Analysointi   ja   suunnittelu­disipliini   kuvaa   miten   suunnittelumalli   (eng.Design model)  tulisi  kehittää.  Suunnittelumalli  kuvaa implementoinnin tarkoitusta ja toimii primäärisenäsyötteenä implamentaatio­disipliinille. Testaus­disipliini kuvaa 

7.4 Testaus-disipliini

Tämä disipliini toimii tavallaan palvelun tarjoajana toisille disipliineille. Testaus keskittyy pääosin tuotteenlaadun arvioimiseen erilaisten testausmenetelmien avulla.

7.4.1 Tarkoitus

Testaus­disipliinin tarkoitus on [1]:– löytää ja dokumentoida viat ohjelmiston laadussa– antaa neuvoja liittyen koettuun ohjelmiston laatuun– todistaa vaatimusten määrittelyn ja suunnittelun aikaan tehtyjen olettamuksien validiteetti

konkreettisilla demonstraatioilla– validoida että ohjelmistotuote toimii kuten on suunniteltu– validoida että vaatimukset on implementoitu asianmukaisesti

7.4.2 Roolit ja aktiviteetit

Tulossa..

Kuva 27. Testaus­disipliinin roolit ja aktiviteetit [1].

Page 29: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

7.4.3 Aftefaktit

Tulossa..

     Kuva 28. Tärkeimmät testaus­disipliinin artefaktit [1].

7.4.4 Työnkulku

Tulossa..

                                                          Kuva 29. Testaus­disipliinin työnkulku [1].

Page 30: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

7.4.5 Suhde muihin disipliineihin

Tulossa..

7.5 Konfiguraation ja muutostenhallinta-disipliini

Konfiguraation ja muutostenhallinta (Configuration and Change Control Management, CM and CCM)kontrolloi   muutoksia   projektin   artefakteihin   sekä   ylläpitää   niiden   integriteettiä.   Tämän   disipliinintärkeimmät  osat    ovat  muutospyyntöjen  hallinta   (Change  Reguest  Management,  CRM),    konfigutaationhallinta (Configuration Management, CM) sekä mittaus (Measurement).

7.5.1 Tarkoitus

Organisaation   konfiguraation   ja   versionhallintasysteemillä   (Configuration   and   Change   RequestManagement   System,   CM   System)  hallitaan   useita   artefakteja,   joita   syntyy   yhteisen   projektinsisällä.   Kontrolloinnin   avulla   voidaan   välttää   kalliiksi   tulevia   sekaannuksia   ja   varmistaa,   ettämuokkauksen tuloksena olevat artefaktit eivät ole konfliktissa. Konflikteja voivat aiheuttaa esim.samanaikainen   artefaktin   päivitys   tai   useat   kehitettävän  ohjelman   eri   versiot,   tai   tilanne,   jossakaikille   ei  välity   tietoa  aftefaktin  päivityksestä.  CM  systeemin  avulla  voidaan  myös  paremminvälttyä artefaktien tahattomalta tuhoutumiselta.

7.5.2 Roolit ja aktiviteetit

Konfiguraation   ja   muutostenhallintaan   kuuluu   sellaisten   kohteiden   identifiointi,   jotka   kuuluvatkonfiguroinnin alaisuuteen. Näin voidaan rajoittaa niihin tehtäviä muutoksia, auditoida muutoksiasekä määritellä ja hallita niiden konfiguraatioita. Konfiguraation ja muutostenhallinta­disipliinin roolejaja aktiviteetteja on esitetty kuvassa 30.

Page 31: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

                                   Kuva 30. Konfiguraation ja muutostenhallinta­disipliinin roolit ja aktiviteetit [1].

7.5.3 Artefaktit

Tulossa..

 Kuva 31: Konfiguraation ja muutostenhallinta­disipliinin artefaktit [1].

7.5.4 Työnkulku

Konfiguraation ja muutostenhallinnan suunnittelu  sekä  konfiguraatioympäristönluominen   kuuluu   tehdäprojektin   alussa.   Kuvassa   32   olevan   työnkulun   muita   tehtäviä   suoritetaan   ajoittain   koko   projektinelinkaaren läpi.

Kuva 32. Konfiguraation ja muutostenhallinta­disipliinin työnkulku [1].

Page 32: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

7.5.5 Suhde muihin disipliineihin

Organisaation CM systeemiä  käytetään koko koko tuotteen elinkaaren ajan.   CM systeemiin kuuluu mm.tuotteen   hakemistorakenne   ja   sitä   kautta   konfiguraation   ja   muutostenhallinta­disipliini   on   yhteydessäkaikkiin muihin disipliineihin.

7.6 Projektinhallinta-disipliini

Ohjelmistoprojektin   hallinta   on   taidetta.   Se   sisältää   kilpailevien   päämäärien   tasapainottamista,   riskienhallintaa   ja   monenlaisten   esteiden   ylittämistä   asiakkaan   ja   käyttäjän   tarpeiden   tyydyttämiseksi.Projektinhallinta   on   ilmeisen   vaikea   tehtävä,   sillä   vain   harvat   projektit   todella   onnistuvat   kaikkienarviointikriteerien   mukaan.   Tosin   hyvä   projektinhallintakaan   ei   vielä   takaa   projektin   onnistumista.Projektipäällikön vastuuseen kuuluvia teknisluontoisia asioita ovat perinteisesti vastuu budjetista, tehtävienjakamisesta,  aikataulusta ja niin edelleen, mutta täytyy muistaa että    tehtävä  on myös ihmisten eikä  vainasioiden johtamista. Tällaisiin ei­teknisiin tehtäviin kuuluu mm. ihmisten odotuksien hallinta.

Projektipäällikkö   varmistaa   kontrollinhallinta­aktiviteettien   avulla,   että   projekti   sujuu   suunnitelmienmukaan. Hän käyttää mitattavia päämääriä voidakseen arvioida miten suunnitelmat ja todellisuus vastaavattoisiaan  esimerkiksi  valmistumisen,   laadun   ja  budjetin  suhteen.  Mitattavien  päämäärien  avulla  voidaanarvioida   myös   muutospyyntöjen   aiheuttamia   vaikutuksia   projektin   laajuuteen.   Projektipäällikkö   mittaakehitystiimin tehokkuutta sekä projektin tuloksia ja kirjaa ylös mahdolliset poikkeavuudet suunnitelmista.

Iteratiivinen   kehitys   vie   aikaa   ensimmäisellä   kerralla   enemmän   kuin   traditionaaliset   lähestymistavat.Yleisen   sudenkuopan   välttämiseksi   tulee   iteraatioiden   liian   suurta   määrää   varoa,   sillä   jokaisen   uudeniteraation suunnitteluun, monitorointiin ja kontrollointiin tarvitaan jonkin verran lisätyötä.

7.6.1 Tarkoitus

Projektinhallinta­disipliinin tarkoitus on [1]:– Tarjota kehys ohjelmisto­intensiivisten projektien hallintaan.– Tarjota käytännönläheisiä ohjeita projektien suunnitteluun, henkilöstön

hankintaan, suoritukseen ja monitorointiin.– Tarjota kehys riskienhallintaan.

7.6.2 Roolit ja aktiviteetit

Projektinhallinta­disipliiniin kuulu projektipäällikön ja katselmoijan rooli. Projektipäällikkö aktiviteetteihinkuuluu  ohjelmiston  kehityssuunnitelman   laatiminen,   johon   kuulu  mm.  vaiheiden   ja   niiden   sisältämieniteraatioiden suunnittelu. Projektipäällikkö  myös kontrolloi projektia mm. aikatauluttamalla ja jakamallatöitä   sekä   kirjoittaa   iteratiosuunnitelman   seuraavalle   iteraatiolle   ennen   sen   aloittamista.   Katselmoijantehtävänä on katselmoija projektin suunnittelu. Projektinhallinta­disipliinin roolit ja aktiviteetit on esitettykuvassa 33.                                Kuva 33. Projektinhallinta­disipliinin roolit ja aktiviteetit [1].

Page 33: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

7.6.3 Artefaktit

Projektinhallinta­disipliinin artefaktit liittyvät prosessin ja projektin suunnitteluun ja suorittamiseen. Tämändisipliinin aftefakteihin kuuluu kehityssuunnitelma, johon sisältyy mittaussuunnitelma, iteraatiosuunnitelmasekä   riskilista.   Alustava   ohjelmiston   kehityssuunnitelma   katselmoinaan   alkuvaiheen   loppupuolella.Kyseinen suunnitelma katselmoidaan myös  esimerkiksi   jokaisen  iteraation   lopussa   tai  kun vastaan  tuleeongelmia,   jotka  aiheuttavat  muutoksia   suunnitelmiin.  Tärkeimpia  projektinhallinta­disipliinin  artefaktejaesittää kuva 34.

                                            Kuva 34. Tärkeimmät projektinhallinta­disipliinin aftefaktit[1]. 

Page 34: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

7.6.4 Työnkulku

Ensimmäisessä iteraatiossa, eli aloitusiteraatiossa, mikä ajoittuu alkuvaiheeseen, kehitetään alustava visio­dokumentti sekä riskilista ja ne katselmoidaan. Tarkoituksena on tässä vaiheessa hankkia riittävä rahoitus,jonka jälkeen voidaan aloittaa tarkempi projektin suunnittelu ja laajuuden määrittely. Alustava ohjelmistonkehityssuunnitelma luodaan ja  projekti  käynnistetään alustavan iteraatiosuunnitelman mukaisesti.  Tämänjälkeen  visio­dokumenttia   ja   riskilistaa  kannattaa   täydentää,   jotta  ne antavat  vahvan pohjan ohjelmistonkehityssuunnitelmalle.

Ohjelmiston  kehityssuunnitelmastan  perusteella  voidaan  nyt  päättää   kannattaako  alkuvaihetta   jatkaa  vaihylätä   koko   projekti.   Seuraavaksi   alustavaa   iteraatiosuunnitelmaa   tarkennetaan   kuvaamaan   kokoaloitusiteraatio.   Seuraavan   iteraation   suunniteluaktiviteetin   avulla   projektipäällikkö,   analysoija   sekäsuunnittelija päättävät,  mitkä  vaatimukset  tutkitaan, tarkennetaan ja realisoidaan. Ennen rakennusvaihettahuomio   keskittyy   vaatimuksien   suhteen   lähinnä   niiden   keruuseen   ja   tarkennukseen.   Iteraatioidensuunnittelua tarkennetaan kokemaan koko alkuvaihetta. Kun iteraatio suorituksessa saaavutaan sen loppuun,iteraatio   katselmoidaan,   jotta   saadaan   selvitetyksi   onko   iteraation   päämäärät   saavutettu.   Projektinkontrollointia   voidaan   suorittaa   tarvittaessa   esimerkiksi   päivittäin.   Seuraavan   iteraationsuunnitteluaktiviteetin  kanssa  rinnakkain  päivitetään ohjelmiston  kehityssuunnitelmaa,   jotta  ne  vastaavattoisiaan.

Jokaisen vaiheen viimeisessä iteraatiossa saavutetaan virstanpylväs, jolloin on syytä suorittaa kattavampikatselmus.  Koko projektin  päätösvaiheessa suoritetaan  projektin  hyväksymiskatselmus,   jossa  selvitetäänonko kehitettävä   tuote  hyväksyttävä   vai   tarvitaanko  vielä  uusia   iteraatioita.  Projektinhallinta­disipliinintyönkulku on esitetty kuvassa 35.

  

                             Kuva 35. Projektinhallinta­disipliinin työnkulku [1].

Page 35: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

7.6.5 Suhde muihin disipliineihin

Projektinhallinta­disipliini tarjoaa kehyksen projektin luomiselle ja hallinnalle, joten tämä disipliini liittyykiinteästi kaikkiin muihin disipliineihin.

8. Laatu, prosessin arviointi ja mittaus

Tulossa..

9. Työkaluohjelmat

Tulossa..

Mallinnus

­ ArgoUML  (löytyy plug­in Eclipseen eli voi myös integroida sen kyseiseen kehitysalustaan)

Toteutus

– Eclipse, Java

Testaus

­ JUnit, Ant, CruiseControl (tukee myös mittausta)

Konfiguraation ja muutostenhallinta

– CVS,  DotProject (muutospyynnöt)

Projektinhallinta

­ DotProject (tehtävät, ohjeistukset, mallipohjat artefakteille), Mantis (bugien seuranta)

Page 36: Unified Process for Education - cs.joensuu.fics.joensuu.fi/pages/mtuki/opt/upedu_old.pdfUPEDU on yksinkertaistettu prosessi RUP (Rational Unified Process) ohjelmistoprosessista. Se

Viitteet

[1] Unified Process for Education [UPEDU] (2004). WWW­sivusto, http://www.upedu.org/upedu/ (15.8.2006).

[2] Robillard, P.N., Kruchten, P., d'Astous, P. (2003) Software Engineering Process with the UPEDU. Addison Wesley, Boston.

[3] Robillard, P.N., Kruchten, P., d'Astous, P. YOOPEEDOO (UPEDU): A Process for Teaching Software Process. Software Engineering Education and Training, 2001. Proceedings. 14th Conference on19­21 Helmikuu 2001 Sivut:18 – 26.

Dokumenttiin kohdistuneet muutokset

6.9.2006 

– lisätty sisällysluettelon otsikko

7.9.2006 

– tarkennettu raporttien tarkoitusta ja merkitystä (kohta 6).

– tarkennettu evoluutiosyklin selitystä (kohta 3).

– lisätty käsite ohjelmiston elinkaari (kohta 3).

– vaihdettu kuvassa 1 olevan konseptuaalisen mallin suhteen merkitystä niin, että aktiviteetti eikuluta artefaktia vaan käyttää sitä (kohta 2).