Toiminnan tarpeet määrittävät käsitemallin

Blogi

Kävin joskus 1990-luvulla ensimmäisiä oliomallinnuskursseja. Silloin termit luokka ja olio olivat meille kaikille uusia ja asiaa havainnollistettiin tyypillisesti eläintarhaesimerkillä. Kissa ja koira ovat molemmat nisäkkäitä. Nisäkäs on ”abstrakti luokka” eli sillä ei ole konkreettisia ilmentymiä, vaan kaikki ilmentymät ovat joko kissoja tai koiria. Siihen aikaan tavoite oli lähinnä se, että kuvaukset toimivat ohjelmistoarkkitehtuuria ohjaavina suunnitelmina, jos ohjelmointikielenä on olio-ohjelmointi. Perinteisemmät ER-mallinnustavat eivät poikenneet tästä paljoakaan. Niilläkin oli mahdollista tunnistaa ylätason käsitteitä.

Olenko koskaan näiden kurssien jälkeen tehnyt käsitemallia, jossa olisi oleellista kuvata, että kissa ja koira ovat nisäkkäitä? En ole. Itse asiassa tuollaisesta ajattelutavasta on enemmän haittaa kuin hyötyä. Asia sinänsä on totta. Kissa ja koira ovat edelleen nisäkkäitä tätä blogia kirjoittaessani, mutta hyötyykö mikään organisaatio tuollaisesta analyysistä? Yksi mahdollinen paikka tulee mieleen, eli eläintieteellinen museo. Jos kuvaisin käsitemallina, miten aineistokokoelma luokittuu (selkärankaiset, nisäkkäät, hyönteiset), saattaisi käsimalliini ilmestyä käsite ”nisäkäs”. Mutta tätä päivää odotellaan vielä. 

Tämä on tärkeä oppi käsitemallintajalle. Vaikka joku asia sinänsä on totta, kuuluuko se meidän käsitemalliimme? Jos emme tarvitse sitä mihinkään, niin ei kuulu. Vastaava esimerkki on vaikkapa ”potilaan hyvä hoito”. Kyllä, se on äärimmäisen tärkeää ja voimme jopa mitata sitä, mutta onko se käsitemallin käsite? Useimmiten ei.

Jotta eläintieteellisen museon käsitemalli saa vertailukohdan, mietitään seuraavaksi eläinlääkäriasemaa. Minulla on koira, olen siis henkilönä eläinlääkäriaseman asiakas. Kullakin ajanhetkellä minulla voi olla erinäinen määrä lemmikkejä ja kullakin lemmikillä on toki oma ”potilaskortti”. Asiakkuus on selvästi kuitenkin minulla. Entäpä tiskillä asiointi? Käteisellä vai kortilla vai onko rouvalla vakuutus? Koira toki on potilaana keskiössä ja kaiken huomion kohde, mutta ei eläin siellä ilman minua asioi. Rokotuskäynnillä minulla voi olla mukana useampikin koira. Ei ole tahtia haitannut. Olen myös siinä käsityksessä, että eläinlääkärit tietävät koirien olevan nisäkkäitä, vaikka tietokone ei sitä heille kertoisi.

Käsitemalli kuvaa siis toiminnan tarpeita. Eläintieteellisen museon täytettyjen eläinten kokoelmaan liittyy aivan erilaiset käsittelysäännöt kuin eläinlääkäriaseman toimintaan. Tarve tietojärjestelmillekin on aivan erilainen. Älä aloita sillä, että ”kunhan vain ymmärrämme ensin, mikä on eläin”.

Käsitemalli muuttuu huomattavasti luettavammaksi, jos siinä käytetään toiminnalle tuttua terminologiaa. Ohjelmistokehityksessä ja tietokannan taulurakennetta suunnitellessa abstraktiotason nosto voi olla hyve, mutta toiminnan käsitemalliin se ei kuulu. Haluatko harjoitella tätä? Osallistu Coalan tietomallinnus-kurssille, niin kerron lisää!

Yhteydenotto