Boochin ja Rumbaughin "Unified Method"

Grady Booch ja Jim Rum-baugh ovat kehitelleet reilun vuo-den ajan yhteistä oliomenetelmää, johon on tarkoitus yhdistää Rum-baughin OMT:n ja Boochin mene-telmien parhaat puolet. Lisäksi yhteistä menetelmää on tullut työstämään Ivar Jacobson, jonka OOSE-menetelmä on kuuluisa käyttö-tapausten ansiosta. Yhdis-tetyn menetelmän työnimenä on Unified Method.

Yhdistetystä menetelmästä jul-kaistiin luonnosversio 0.8 viime lokakuussa OOPSLA:ssa. Luon-nosversiota jaetaan ilmaiseksi ja siihen toivotaan kommentteja. Luonnosta täydennetään kevään aikana ja lopullinen versio julkais-taneen tämän vuoden puolivälissä.

Yhdistetty menetelmä on luon-nosversiossa kuvattu formaalisti metamallin avulla. Metamallissa on kuvattu yhdistetyn menetelmän elementit ja niiden väliset suhteet. Metamalli kuvaa selkeästi ja yksikäsitteisesti yhdistetyn menetelmän. Tästä on hyötyä tehtäessä esim. CASE-välineitä, jotka tukevat yhdistettyä menetelmää. Menetelmän opiskeluun metamalli on turhan vaikea. Sen vuoksi menetelmä on kuvattu myös sanallisesti ja notaa-tioesimerkkien avulla.

Luonnosversiossa on 7 erilais-ta kaaviota: luokkakaavio (class diagram), käyttötapauskaavio (use case diagram), "viestiyhteyskaavio" (message trace diagram), "olioviestikaavio" (object message diagram), tilakaavio (state diagram), moduulikaavio (module diagram) ja alusta-kaavio (platform diagram). Message trace ja object message kaavioille ei ole olemassa vielä vakiintunutta suo-mennosta. Moduuli- ja alustakaa-vio ovat samanlaiset kuin Boochin menetelmässä.

Luokkakaavio

Luokkakaavio on kaikkien oliomenetelmien keskeisin ja tär-kein kaavio. Yhdistetyn menetel-män luokkakaaviossa kuvataan paljon erilaisia asioita. Kuvaan 1 on näistä otettu vain muutama.

Voidaan huomata, että luokan kuvaamisessa Rumbaughin käyt-tämä suorakulmio on voittanut Boochin pilven, koska suorakulmio on helpompi piirtää. Oliota (eli luokan ilmentymää) kuvataan uudella symbolilla, kuusikulmiolla.

Perintä kuvataan nuolella yli-luokkaan. Nuolen pää on täytetty kolmio. Yhteydet kuvataan viival-la ja kardinaliteetti kuvataan * (tähdellä) nollasta moneen tai nu-merolla esim. 1. Yhteyden ni-meen liitetään nuolenpää, joka kertoo suunnan, johon nimi on voimassa. Koostumusyhteys kuva-taan kuten OMT:ssä salmiakilla. Katkoviivalla varustettu nuoli kuvaa olion ja luokan välistä suhdetta.

Aihealueet (categories) on ku-vattu suorakulmioilla, joissa on kaksinkertainen viiva. Aihealueet voidaan esittää myös puumuodossa.

Käyttötapauskaavio

Käyttötapauskaavio kuvaa tie-tojärjestelmän ja sen ympäristön välistä vuorovaikutusta. Käyttöta-pauskaavio koostuu käyttäjäroo-leista ja käyttötapauksista sekä yhteyksistä niiden välillä. Käyttö-tapausten avulla kuvataan millä eri tavoin järjestelmää tullaan käyttämään. Käyttötapauksia ovat esim. ajan varaus ja kirjan laina-us.

Jacobson kuvaa käyttötapaus-kaaviossa käyttäjäroolia tikku-ukolla. Yhdistetyssä menetelmäs-sä tikku-ukko on korvattu kuusi-kulmiolla.

Käyttötapausten ilmentymiä kuvataan skenaarioiden avulla. Skenaario kuvaa käyttötapauksen suorituslogiikan. Samasta käyttö-tapauksesta voi olla useita ske-naarioita, joista yksi kuvaa nor-maalin tapauksen ja muut poikke-ustapauksia. Skenaarioiden ku-vaamisessa käytetään suorasanais-ta tekstiä, viestiyhteyskaavioita ja olioviestikaavioita.

Käyttötapaus voi sisältää toisen käyttötapauksen osana omaa toi-mintalogiikkaansa. Tämä kuva-taan katkoviivanuolella.

Viestiyhteyskaavio ja olio-viestikaavio

Viestiyhteyskaavioita ja olio-viestikaavioita käytetään skenaa-rioiden kuvaamiseen. Ne sisältä-vät saman informaation eri näkö-kulmista tarkasteltuna.

Viestiyhteyskaavion englan-ninkielisessäkin nimessä on vielä horjuvuutta. Vaikka tekstissä käytetään message trace diagram niin kuvissa on event trace diag-ram.

Viestiyhteyskaaviosta nähdään olioiden välinen vuorovaikutus aikajärjestyksessä. Kaaviossa olioita edustavat pystysuorat viivat ja viestit tai tapaukset kuvataan pystysuorien viivojen välisillä nuolilla. Jos on tarpeellista, niin viestien tai tapausten välinen aika voidaan laittaa kaavioon. Viesti-yhteyskaavio on hyvä selvitettäes-sä ajoituskysymyksiä.

Erityistapaus viestiyhteyskaa-viosta on kaavio, josta nähdään milloin kukin olio on aktiivinen (focus-of-control diagram). Liha-voitu viiva osoittaa, että oliolla on kontrolli hallussaan.

Normaalisti viestiyhteyskaavi-oon laitetaan vain kutsut. Pa-luut ovat implisiittisesti mukana. Jois-sakin tapauksissa on hyödyllistä kuvata myös paluut.

Toista skenaariokaaviota kut-sutaan olioviestikaavioksi (object message diagram). Sillä kuvataan oliot ja niiden väliset linkit ske-naarion alussa ja sen suorituksen aikana. Oliot piirretään kaavioon kuusikulmioina ja niiden väliset linkit viivoilla. Viestit laitetaan viivan viereen ja pieni nuoli osoittaa viestin suunnan. Viestien suoritusjärjestys numeroiden. Ite-raatiota kuvataan tähdellä. Sijoi-tusmerkin ( := ) jälkeen oleva nimi on paluuarvon nimi. Kaavi-ossa voidaan kuvata myös sa-manaikaisuutta. Lisäksi voidaan esittää muita Boochin oliokaavios-ta peräisin olevia asioita.

Linkkien luonnetta kuvataan merkitsemällä kirjain laatikon sisään kohtaan, jossa linkki kos-kettaa olioita. Seuraavanlaisia linkkejä voidaan määritellä. A = yhteyslinkki, F = olion kenttä (kohdeolio on osa lähdeoliota), G = globaali muuttuja, L = lokaali muuttuja, P = parametri ja S = viittaus itseensä.

Tilakaavio

Tilakaaviot ovat luokan käyt-täytymisen formaalisia kuvauksia. Tilakaaviot kuvaavat olion tilan ajallista muuttumista, kun se on vuorovaikutuksessa muiden olioi-den kanssa. OMT:ssä ja Boochin menetelmässä käytettiin Harelin tila-kaavioita. Yhdistettyyn mene-telmään on otettu joitakin laajen-nuksia Schlaer/Mellorilta ja SSADM:stä. Kuvasta 5 löytyy tilakaavion peruselementit.

Yhteenveto

On ennustettu, että Unified Method on oliomenetelmien voit-taja, sillä OMT ja Bosch ovat ny-kyisin eniten käytettyjen mene-telmien joukossa. Varsinkin OMT:n käyttäjien on luontevaa siirtyä yhdistetyn menetelmän käyttäjiksi. Myös CASE-välineiden valmistajat tulevat tutki-maan tarkasti yhdistetyn mene-telmän metamallia ja suurin osa tulee ottamaan sen menetelmäksi, jota väline tukee. Toisaalta, jos CASE-välineet tukevat hyvin me-netelmää, niin se lisää vielä mene-telmän suosiota.

Luonnosversiosta jäin kaipaa-maan kehittämismalliosuutta, jos-sa kerrottaisiin tarkasti mitä teh-dään määritys-, suunnittelu- ja toteutusvaiheissa. Lisäksi tulos-kuvausten sisältö jää lähinnä no-taation tasolle. Systeemityömallis-sa pitäisi kuvata tulokset ja esim. niiden laatukriteerit huomattavasti tarkemmin.

Yhdistetty menetelmä on keskittynyt melkein yksinomaan oliokuvauksiin. Siitä puuttuu monia asioita, jotka myös kuuluvat systeemityömalliin ja joista tarvitaan ohjeita. Esim. käyttöliittymän suunnittelu, relaatiokannan suunnittelu, testaus, käyttöönotto jne.

On muistettava, että kyseessä on luonnos ja se tulee vielä jatkossa muuttumaan ja täydentymään.

Pekka Pöyhönen
TT-Valtionpalvelut Oy
PL 403, 02101 Espoo
puh. 90-457 4210