Kehittämismalli osana olioajattelun käyttöönottoa yrityksessä

Monissa tietotekniikkaa hy-väksikäyttävissä ja tietojärjestelmiä rakentavissa yrityksissä ollaan harkitsemassa tai siirtymässä oliomenetelmän käyttöön. Tähän aiheeseen Systan "Olioajattelun käyttöönotto" -kirja tuo yhden näkökulman. Kirjassa esitettävä kehittämismalli kuvaa liiketoiminnan muutoksista lähtevän järjestelmäkehityksen oliokeskeisen mallintamista-van.

Mistä kaikki alkoi?

Keväällä 1995 Systa käynnisti "oliomenetelmän käyttöönotto yrityksessä" -projektin, jonka tehtä-vänä oli tuottaa olioajattelun käyttöönottoa tukeva käsikirja ja järjestää aiheesta seminaari. Kir-jalle hahmottui neljä peruspilaria:

  1. olioajattelun käyttöönotto ja ajattelutavan omaksuminen organisaatiossa,
  2. oliokehittämisen ohjaus,
  3. kehittämismalli ja menetel-mät,
  4. kehittämismallin vaiheet ja kuvaukset kattava esimerkki.

Kehittämismallille asetettiin mm. seuraavanlaisia tavoitteita:

Alunperin tavoitteena oli valita yksi malli, josta kirjoitettaisiin vain soveltamisosat. Mutta kun esimerkkiä työstettiin ja "markkinoilla olevia" malleja verrattiin vaatimuksiin ja omiin käytännön kokemuksiimme, ei mikään niistä yksinään tuntunut riittävän. Lo-pulta projekti päätyi kolmen mal-lin yhdistelmään. Kuvaustekniikka ja staattinen oliomalli otettiin Rumbaugh:lta [1.], käyttötapausmalli Jacobsonilta [2.] ja yhteydenpitomalli Yourdonilta [3.].

Mallin edut

Kehittämismallin yhtenä tärkeimpänä etuna on kuvausten kiinteä liittyminen toisiinsa. Ku-vauksesta johdetaan seuraava ja jokainen kuvaus on tarpeellinen. Kaikki mallin tuottamat kuvaukset ovat myöhemminkin ylläpidettävää dokumentaatiota. Mitään ei siis tehdä "työpaperiksi" vain tätä yhtä kehittämistilannetta varten.

Toinen tärkeä ominaisuus on tietojärjestelmäkehittämisen liittäminen yrityksen liiketoiminnan kehittämiseen. Mallissa on kuvattu, miten liiketoiminnan prosessien kuvauksesta voidaan johtaa tietojärjestelminä kehitettävien osuuksien rajaukset. Tästä on hyötyä erityisesti tietotekniikkaa hyväksikäyttäville yrityksille.

Kehittämismallia ei ole sidottu tiettyyn ohjaustapaan. Sitä voi-daan hyödyntää niin perinteisissä projekteissa kuin spiraalimaisissa kehittämishankkeissakin. Koska kaikki mallin tuottamat kuvaukset ovat pysyviä, niitä voidaan täydentää jatkuvasti spiraalin eri kierroksilla.

Vaiheet ja menetelmät

Kirjassa kehittämismalli on jaettu kahteen lukuun,

Kehittämisen vaiheissa kerrotaan suoritettavat tehtävät ja niissä käytettävät menetelmät. Menetelmissä puolestaan esitetään käytet-tävät kuvaustekniikat ja kuvaus-tekniikoiden soveltamistavat eri vaiheissa. Oheinen kuva esittää menetelmien käyttökohteet vaatimusten kartoituksessa ja määri-tyksessä.

Oliolähestymistapa ei sinällään muuta asioita, jotka ratkaisua hahmoteltaessa tulee selvittää ja huomioida. Esimerkiksi vaatimusten kartoituksessa tulee edelleenkin kartoittaa nykytila, selvittää tavoitteet ja vaatimukset, määritellä toiminta, punnita eri ratkaisuvaihtoehtoja sekä jakaa kehittämisalue toteutuseriin. Erona perinteiseen on tapa määritellä, jäsentää ja ku-vata järjestelmäratkaisu.

Vaatimusten kartoitus

Vaatimusten kartoituksen ta-voitteena on rajata kehittämisalue sekä kuvata karkeasti sen sisältö ja valittu ratkaisuvaihtoehto. Kartoitusvaiheen lopuksi kehittämisalue jaetaan toteutuseriin, jotka jokainen määritellään ja suunnitellaan omina kokonaisuuksinaan.

Kehittämisen kohteena oleva liiketoiminta kuvataan yhteydenpitomallilla. Se esittää kohtuullisen karkealla tasolla, kenen kanssa ja missä järjestyksessä liiketoiminnan osapuolet kommunikoivat. Liiketoimintaprosessin lähtökohtana on aina "tilaajan" tai "asiakkaan" impulssi, pyyntö, tilaus tms. Prosessin lopputuloksena on edellä mainittuun pyyntöön liittyvän palvelun tuottaminen asiakkaalle.

Yhteydenpitomallin ja nykytoiminnan kuvausten perusteella lähdetään hahmottamaan tär-keimpiä kohdealueeseen kuuluvia käsitteitä ja toiminnan kohteita. Samankaltaiset kohteet yhdiste-tään luokiksi ja niiden väliset merkittävimmät yhteydet selvite-tään. Näistä osista muodostetaan alustava liiketoiminnan oliomalli. Malli on pohja koko järjestelmäkehitykselle. Vaatimusten kartoituksessakin sen perusteella hahmotetaan ja arvioidaan ratkaisuvaihtoehtoja.

Erityisesti kannattaa huomioi-da, että vaatimusten kartoitus on lyhyt, karkealla tasolla ratkaisua hahmottava työvaihe. Asiat tar-kentuvat jokaisen toteutettavan osan kohdalta määrityksessä.

Määritys

Määrityksen lopputuloksena on kehitettävän järjestelmän ulkoista käyttäytymistä kuvaavat mallit:

Käyttötapausten määrittelyn lähtökohtana on yhteydenpito-malli. Siitä ilmenee järjestelmän kanssa kommunikoivat käyttäjäroolit ja yhteistoiminnan tapa. Jokaisen käyttäjäroolin osalta selvitetään sen vastuulla olevaan osaprosessiin kuuluvat työkokonaisuudet. Näitä tarkemmin analysoimalla löydetään käyttötapausten väliset suhteet ja yhteiset osat.

Staattinen oliomalli saa liiketoiminnan alustavasta oliomallista toteutuserään kuuluvat luokat ja niiden väliset yhteydet. Määritysvaiheessa malliin lisätään luokki-en ominaisuudet, täsmennetään luokkien välisiä yhteyksiä ja muodostetaan kokoonpanoraken-teet ja luokka-hierarkiat.

Olioiden elinkaarien mallintaminen aloitetaan olion elämän kannalta merkityksellisten tapah-tumien selvittämisestä. Sen jäl-keen määritellään ne tilat, joissa olio voi näiden tapahtumien seu-rauksena olla ja kuvataan tapah-tumien järjestys. Tapahtumien tunnistaminen kannattaa aloittaa yhteydenpitomallista. Siinä kuva-tut viestit ovat useimmiten suo-raan tapahtumia, joihin jonkun olion on reagoitava.

Oliomäärityksessä kuvausten järkevä laadintajärjestys määräy-tyy tilannekohtaisesti. Yhden ku-vauksen täsmentyminen täsmentää myös muita.

Suunnittelu

Suunnittelun lopputuloksena on:

Suunnitteluvaiheessa ratkais-taan, miten liiketoiminnan oliot ja niihin kohdistuvat käyttötapaukset mallinnetaan tietojenkäsittelyoli-oina, niiden ominaisuuksina ja palveluina. Pääasiallisen käyttö-tarkoituksensa perusteella tieto-jenkäsittelyoliot jakautuvat liitty-mä-, tieto- ja ohjausolioihin. Liittymäolioiden päävastuuna on järjestelmän ulkoisen rajapinnan, esimerkiksi käyttöliittymän, hoi-taminen. Tieto-olioiden vastuuna on järjestelmän tietosisällöstä huolehtiminen ja ohjausolioiden vastuulla toimintalogiikan ohjaus.

Jako asiakas/palvelin-tyyppisiin osajärjestelmiin tehdään niiltä saatavien palveluiden perusteella. Jos osajärjestelmä kommunikoi suoraan käyttäjän kanssa, voidaan rajaus tehdä nimeämällä ne käyttötapaukset, joista osajärjestelmä vastaa. Muut tekniset osajärjestelmät rajataan määrittämällä, mitä palveluja nämä muille tarjoavat. Osajärjestelmäjako kuvataan staattisena oliomallina ja järjes-telmien väliset liittymät olioyhteistyökaaviona.

Tietojenkäsittelyn oliomalli johdetaan liiketoiminnan oliomallista. Jokaista liiketoimintaluokkaa vastaa tieto-olioluokka, jonka talletustapa tietokantaratkaisun yhteydessä suunnitellaan. Samalla on myös ratkaistava, miten olioiden väliset yhteydet toteutetaan. Vastaava rakenne saattaa löytyä luokkakirjastosta tai sen toteut-tamiseen joudutaan käyttämään kokoelmia tai listoja.

Tietojenkäsittelyn olioluokkien ominaisuuksia ja palveluja tarkennetaan käymällä läpi toteutuserään kuuluvat käyttötapaukset. Sen jälkeen suunnittelu etenee palvelujen kuvauksia täsmentämällä. Tarvittaessa käyttötapauksen toteutus kuvataan käyttötapauskohtaisena olioyhteistyökaaviona.

Testaus

Olioihin nojautuva järjestelmärakenne asettaa aivan uusia haasteita testaamiselle. Uudet piirteet, kuten periytyminen, monimuotoisuus, tiedon tiukka kapselointi ja mahdollinen ajonaikainen sidonta, edellyttävät määrämuotoista ja systeemityöprosessiin kiinteästi integroitua testaustapaa. Esimer-kiksi luokkahierarkiaa ylläpidettäessä on aina testattava muutosten mahdolliset sivuvaikutukset aliluokissa.

Tasoiltaan ja vaiheiltaan oliojärjestelmän testaus noudattaa pe-rinteistä tapaa.

Oliojärjestelmän pienin testat-tava yksikkö on luokka. Luokka testataan niin sisäisen algoritmin kuin ulkoisen toiminnallisuuden-kin osalta. Testausominaisuus kannattaa rakentaa suoraan testat-tavien luokkien palveluiksi, jol-loin luokkaa voidaan tarvittaessa pyytää testaamaan itsensä.

Olioiden välinen vuorovaiku-tus ja yksittäistä luokkaa suurem-mat kokonaisuudet, kuten osajär-jestelmät, testataan käyttötapaus-kohtaisesti. Testitapaukset laadi-taan kattavasti käyttötapausten ilmentymien pohjalta.

Projektin tilanne

Maaliskuussa 1996 "Oliomenetelmän käyttöönotto yrityksessä" -projekti on edennyt tekstien kommentointivaiheeseen. Palautteen huomioimisen jälkeen jäljellä on vielä lukujen "yhdistäminen" ja kirjan toimittaminen.

Kirjallisuutta

[1.] Rumbaugh, J., Blaha, M., Pre-merlani, W., Eddy, F., Loren-sen, W., 1991. Object-Oriented Modeling and Design, Prentice-Hall International, 500 s.

[2.] Jacobson, I., Christerson, M., Jonsson, P., Övergaard, G., 1992. Object-Oriented Software Engineering, A Use Case Driven Approach, Addison-Wesley Publishing Company, 528.

[3.] Yourdon, E., Whitehead, K., Thomann, J., Oppel, K., Ne-vermann, P., 1995. Mainstream Objects: An Analysis and Design Approach for Business. Yourdon Press, 331 s.

Leila Vilkkinen,
Merita Pankki,
Rahoitusyhtiöjärjestelmät,
00020 MERITA,
puh: (90) 165 88756,
leila.vilkkinen@merita.merita.mailnet.fi