Hannu Kangassalo
Tampereen yliopisto
1999-08-17
Tiedätkö, mitä käsitteellinen mallintaminen on? Missä sitä tarvitaan ja miksi? Oletko selvillä mallintamisen monista mahdollisuuksista? Tiedätkö, minkälaisia mallintamisen ajattelutapoja tulevat suunnittelu- ja työtehtävät suunnittelussa ja ohjelmoinnissa edellyttävät? Tämä kurssi antaa vastauksia em. kysymyksiin ja paljon muuhun.
Eräs maailman johtavista tietojärjestelmien tutkijoista, John Mylopoulos Toronton yliopistosta, sanoi 18.6.1997 CAiSE-konferenssissa, että informaation mallintamisesta on tulossa eräs tietojenkäsittelyopin ydinalueista. Käsitteellinen mallintaminen on yksi tärkeimmistä informaation mallintamisen osa-alueista. Käsitteet ovat ihmisen ajattelun kognitiivisia 'välineitä', joita ilman ei ole ajattelua eikä tietojenkäsittelyä. Kaikki suunnittelu, myös tietojärjestelmien suunnittelu, perustuu käsitteiden muodostamiseen ja käyttöön. Se edellyttää aina käsiteanalyysiä ja käsitteellistä mallintamista, usein myös käsitesynteesiä. Käsitteiden muodostamisprosessin tunteminen paljastaa myös sen, miksi ohjelmoinnissa käytettävät suunnittelumallit ja kehykset (design patterns and frameworks) eivät usein olekaan helposti sovellettavissa, vaikka niin yleisesti luullaan. Niiden muodostaminen ja käyttäminen edellyttävät niiden sisältönä olevien käsitteiden muodostamista tai tuntemista, mutta sitä ei useinkaan oteta huomioon.
Käsitteellisellä mallintamisella tarkoitetaan kohdealueen ja sen systeemin tunnistamiseen, suunnittelemiseen ja määrittelyyn tarvittavien, kohdealuetta ja siihen liittyvää tietosisälöä kuvaavien, toteutuksesta riippumattomien käsitteellisten mallien eli käsitekaavioiden luomista. Käsitekaavion avulla tunnistetaan ja valitaan, tehdään 'näkyväksi' ja kuvataan ihmisen käyttämä, kohdealuetta koskeva inhimillinen käsitteistö ja tietämys, jolla tietojen merkitys, systeemin toiminta ja eheyssäännöt muotoillaan. Käsitekaavio sisältää kaiken relevantiksi arvioidun käsitteellisen informaation järjestelmästä ja sen toiminnasta.
Inhimillinen käsitteistö voidaan muodostaa monen erilaisen ontologian perusteella ja monia tietoteoreettisia periaatteita noudattaen. Ihmisen käsitteistö on huomattavasti erilainen kuin tietojärjestelmien suunnittelussa käytettävä tietokonetekninen, esim. UML:llä muodostettu tekninen käsitekuvaus. Käyttäjän on ymmärrettävä inhimillisen mallin ja teknisen mallin välinen ero voidakseen täysin ymmärtää järjestelmää ja käyttää sitä oikein. Toisaalta myös järjestelmän suunnittelijan ja rakentajan on hallittava inhimillisen mallin ja teknisen mallin välinen suhde voidakseen rakentaa oikeaan inhimilliseen malliin perustuvan teknisen järjestelmän. Yleensä inhimillinen malli ja sen muodostamisprosessi hallitaan huonosti, joten rakennettu tekninen järjestelmä on lähes aina harhainen ja jopa virheellinen. Tästä aiheutuu paljon vaikeuksia.
Tietojärjestelmässä on suuri määrä yhteisön muodostamia käsitteitä - satoja tai tuhansia, joiden ymmärtäminen edellyttää yhteisön ajattelutapojen tuntemista. Käsitteistöjen ymmärtäminen ja hallinta ovat osoittautuneet vaikeiksi tehtäviksi. Systeemin määrittely edellyttää usein uusien käsitteiden muodostamista, artikulaatiota ja käsitteiden konstruointia, jotka voidaan tehdä monella tavalla. Käsitteiden kehittämistä, ymmärtämistä ja käyttöä voidaan avustaa kehittämällä käsitejärjestelmiä, jotka perustuvat epistemologisiin teorioihin ja ontologisiin lähtökohtiin sekä suunnittelijan valitsemaan ontologiaan. Teorioiden ja lähtökohtien tunnistaminen on suunnittelussa tarvittavan tiedon muodostamisen ja menetelmäkehityksen perusta. Nykyiset tekniset suunnittelumenetelmät, esim. UML, eivät edes tunnista näitä ongelmia.
Tietomme käsitteistä ja niihin perustuvista tiedoista ovat usein pahasti puutteellisia, eikä tarvittavia metatietoja tunnisteta. Monet teknisesti suuntautuneet henkilöt eivät tunne käsitteistön muodostamiseen ja käsitteelliseen mallintamiseen liittyvää ongelmakenttää. Monet ohjelmavirheet aiheutuvat siitä, että ohjelmoija ei tunne tiedon käsitesisältöä kunnolla. Kurssilla käsitellään menetelmiä tiedon käsitesisällön tunnistamiseen ja hallintaan sekä tutkitaan tapoja käsitteiden muodostamiseen ja tiedon käsitesisältöön liittyvien ominaisuuksien kuvaamiseen.
Systeemin suunnittelun perustana eivät voi olla ohjelmoinnissa käytettävät, ohjelmointi- ja toteutustekniikasta riippuvat käsitteet, vaan systeemin käyttäjien työssään tuntemat ja tarvitsemat inhimilliset käsitteet. Merkittävän ongelman aiheuttaa se, että kohdealueen käsitteistö riippuu suurelta osin käyttäjien soveltamasta ontologiasta ja heidän tuntemansa tietämyksen määrästä. Kurssilla kehitetään taitoa muodostaa asiasisällön määrittelemiseen tarvittavia käsitteitä, ontologioita ja käsitejärjestelmiä, tutkitaan niiden ominaisuuksia sekä käytetään niitä suunnittelun välineinä. Työn aikana on usein kehitettävä koko organisaation ajattelun välineitä.
Käsitekaavio muodostaa toteutettavan järjestelmän käsitteellisen sisällön. Se voi olla koko organisaation laajuinen, mutta tavallisesti se on vain osa siitä. Käsitekaavion konkretisointi sanalliseen tai graafiseen muotoon sopivan käsitekielen avulla mahdollistaa sen käytön mm. suunnittelutyön ja eri osapuolten välisen kommunikoinnin sekä käyttöliittymän suunnittelun perustana. Kukin käsitekieli soveltuu - ohjelmointikielten tapaan - parhaiten tietyn tyyppisiin tehtäviin. Eri tyyppisiä mallintamisen sovelluksia ovat tietojärjestelmien suunnittelun lisäksi mm. tietämyksen integrointi ja tietokokonaisuuksien hallinta, sosiaalisen reaalimaailman teorioiden kehittäminen ja hallinta, sekä metatiedon ja paikan mallintaminen. Käsitekaaviosta voi syntyä yritykselle myös myytävä tuote. Kurssilla tutkitaan ja verrataan erilaisia käsitekaaviokieliä, tarkastellaan järjestelmän metakäsitteitä ja organisaation oman käsitejärjestelmän muodostamista. Kuinka kattava voi organisaation oma käsitejärjestelmä olla? Kuinka rakennetaan organisaation oma käsitejärjestelmä ja siihen perustuva käsitekaavio? Millaisia kielenkäyttöön liittyviä ongelmia oman käsitejärjestelmän käytöstä voi aiheutua? Internet tekee näistä ongelmista erittäin ajankohtaisia. Monet puhuvat globaalin tietovaraston muodostamisesta, mutta onko se edes periaatteessa mahdollinen? On löydetty hyviä perusteita epäillä sitä.
Jos arvelet, että tietojärjestelmän asiasisältö on tunnettava, että se on
tietoisesti suunniteltava ja että suunnittelu ja käsitteellinen
mallintaminen ennen ohjelmointia ovat tarpeellisia työvaiheita, tai olet
kiinnostunut tietokokonaisuuksien hallinnasta, niin tämä kurssi on
tarkoitettu juuri sinulle. Kurssi antaa sinulle välineitä suunnittelun eri
vaiheisiin sekä valmiuksia arvioida ja kehittää käsitteellisen
mallintamisen ja järjestelmän suunnittelun menetelmiä. Kurssilla tutkit
myös tiedon ja tietojärjestelmien kehittämisen teorian perusteita. Kurssin
sisällön pääkohdat ovat:
Kurssiin kuuluu luentojen lisäksi viikkoharjoitukset ja harjoitustyö. Harjoitustyön ja viikkoharjoitusten aiheisiin voit itse vaikuttaa. Luentojen yhteydessä pyritään keskustelemaan ja arvioimaan menetelmiä mahdollisimman paljon. Luennot ovat ma klo 12-14 ja ke klo 12-14, Pinni 2111, harjoitukset ti klo 12-14, Pinni ls 2098. Kurssi alkaa 8.9.
Hannu Kangassalo
hk@cs.uta.fi