Taustaa
Tietotekniikkaa pyritään nykyisin soveltamaan mahdollisimman laajasti liike-elämän toimintojen apuna. Perustehtäviin, kuten tekstinkäsittelyyn ja taulukkolaskentaan, on kehitetty yleiskäyttöisiä ja monipuolisia ohjelmistoja. Harvinaisempiinkin tarpeisiin on mahdollista löytää valmisohjelmistoja, jotka monipuolisesti kattavat soveltamisalueen yksityiskohdat.
Operatiiviset tietojärjestelmät tuottavat paljon perustietoa, jota halutaan yrityksissä seurata ja analysoida erilaisista näkökulmista. Toteutuneiden lukujen ja omien ennusteiden avulla haluttaisiin myös tarkastella mahdollisia tulevaisuuden skenaarioita.
Jokaisen yrityksen harjoittama liiketoiminta ja sen yhteydessä tehtävät yksityiskohtaiset päätökset poikkeavat toisistaan. Näinollen ei ole mahdollista luoda kaikkia yrityksiä tai toimialoja kattavaa suunnittelujärjestelmää. Tämän työn aiheena oli suunnitella ja toteuttaa sovelluskehitin, jolla voitaisiin tehokkaasti rakentaa asiakaskohtaisia suunnitteluj ärj estelmiä.
Asiakaskohtaisen suunnittelujärjestelmän rakenne ja tietosisältö esitetään käsitemallin {conceptual model) avulla. Oliomallinnuksen keinojen avulla tehdyssä käsitemallissa kuvataan kaikki järjestelmän sisältämät tiedot olioluokkina ja näiden attribuutteina.
Asiakaskohtaiset tiedot syötetään käsitemallin luokista luotujen instanssien attribuuttien arvoiksi. Attribuuttien väliset laskennalliset riippuvuudet kuvataan selväkielisinä laskentasääntölausekkeina ja ovat osa käsitemallia. Suunnittelujärjestelmän tehtävä on laskea mallin kaikkien johdettujen attribuuttien arvot käsitemallin mukaisten laskentasääntöjen avulla. Lopulliseen järjestelmään on lisäksi rakennettava monipuolinen käyttöliittymä, jonka kautta voidaan syöttää tietoja ja tarkastella tuloksia useista eri näkökulmista.
Historia
Nokia Tutkimuskeskuksessa oli jo vuonna 1986 aloitettu projekti päätöksenteon tukijärjestelmän rakentamiseksi. Tarkoituksena oli luoda järjestelmä, jossa reaalimaailmassa esiintyvä, laskennallisia riippuvuuksia sisältävä kokonaisuus olisi voitu kuvata oliomallina. Järjestelmän avulla haluttiin kokonaisuutta tarkastella erilaisista näkökulmista ja tutkia muutosten vaikutuksia kokonaisuuden eri osiin.
Järjestelmästä oli rakennettu kaksi versiota ennen tämän työn alkua, kuva 1.
Ensimmäinen versio oli alkuperäisten ideoiden prototyyppi, joka rakennettiin Symbolics-laitteistojen avulla. Prototyypistä saatujen kokemusten perusteella päätettiin järjestelmästä tehdä kaupallinen tuote.
Varsinaiseksi ohjelmistotuotteeksi asti rakennettiin Stratex-niminen ohjelmisto, joka perustui CommonLisp-kieleen ja vaati Unix-käyttöjärjestelmän. Stratex-ohjelmiston avulla toteutettiin kymmenen suunnittelumallia suurille suomalaisille yrityksille.
Laaj impia käyttöönotettuja sovelluksia olivat Outokumpu-konsernin strategisen suunnittelun avuksi rakennettu monikansallisen kaivosyhtiön malli [NiPa93], Neste Oy:n jalostamojen ja varastojen simulointisovellus sekä Nokia Datan strategista suunnittelua varten rakennettu tytäryhtiöt ja osastot sisältävä suunnittelumalli.
Vaikka Stratex sai kansainvälistäkin tunnustusta (DSS '91: Outstanding New Product of 1991), ei se kuitenkaan menestynyt kaupallisesti. Ohjelmistossa oli puutteita, joita ei voitu ratkaista ohjelmistoa edelleen kehittämällä. Koska ala kuitenkin nähtiin houkuttelevana, päätettiin ohjelmistosta rakentaa vielä kolmas versio, nimeltään MUST - Multi Purpose System Modelling Tool. Ohjelmistolle asetettuja tavoitteita laajennettiin kautta linjan Stratex-järjestelmän tavoitteista. Mukaan otettiin myös kokonaan uusia tavoitteita, erityisesti monia sovelluskehitinominaisuuksia.
Alkuperäiset tavoitteet (86)
* mallinnusympäristö
* strateginen suunnittelu
Laajennetut tavoitteet (93)
* sovelluskehitinominaisuudet
-^Symbolics (87))---) STRATEX (90-94)
MUST - Multi Purpose System Modelling Tool
(93-)
Kuva 1 Päätöksenteon tukij ärj estelmäprojektin historia Tavoitteet
Tämän työn tavoitteena oli suunnitella ja toteuttaa edellä mainittu funktionaalinen, oliopohjainen sovelluskehitin. Sovelluskehittimen avulla oli voitava tehokkaasti rakentaa asiakaskohtaisia suunnittelujärjestelmiä. Sovelluskehittimen oli sisällettävä oliopohjainen mallinnusympäristö suunnittelujärjestelmän käsitemallin luomista ja ylläpitoa varten. Funktionaalisilla ominaisuuksilla tarkoitettiin erillisen laskentasääntökielen määrittelyä ja sen avulla tapahtuvaa laskennan ohjausta ja suorittamista. Järjestelmän oli myös mahdollistettava kaupallista tasoa olevien graafisten käyttöliittymien rakentaminen asiakaskohtaisille suunnittelujärjestelmille.
Rakennettavalle ohjelmistolle asetettavat yksityiskohtaiset vaatimukset oli tarkennettava järjestelmän suunnitteluvaiheessa ja ne on kirjattu osaksi tätä työtä.
Ohjelmiston määrittely- ja suunnitteluvaiheessa voitiin käyttää hyväksi Stratex- ohjelmistosta saatuja kokemuksia. Stratex-j ärj estelmä asetti myös tavoitteita rakennetulle ohjelmistolle. Kaikki Stratex-sovellukset oli voitava siirtää rakennetulle ohjelmistolle siten, että olennaisia toiminnallisuuteen vaikuttavia osia ei tarvinnut jättää pois.
Tässä työssä oli vertailtava erilaisia toteutustapoja järjestelmän rakentamiseksi.
Käytettävä ohjelmointikieli oli valittava siten, että se tukisi mahdollisimman hyvin kaikkia, joskus ristiriitaisiakin tavoitteita. Käyttöjärjestelmäksi oli jo työn alkuperäisenä tavoitteena määrätty Microsoft Windows [Micr92], Erityistä huomiota oli kiinnitettävä järjestelmän toteutukseen liittyviin valintoihin. Eri toteutusvaihtoehdot oli mahdol
lisuuksien mukaan kuvattava ja samalla oli pyrittävä selvittämään kunkin vaihtoehdon hyvät ja huonot puolet.
Tähän työhön oli kerättävä kokemuksia järjestelmän käyttöönotosta ja rakennetuista asiakaskohtaisista sovelluksista. Esimerkkisovellusten avulla pyritään selvittämään järjestelmän ilmaisuvoimaa erityyppisissä tilanteissa. Sovelluskehitintä ei voida käyttää, mikäli sen ilmaisuvoima ei riitä asiakaskohtaisen sovelluksen rakentamiseksi. Asiakas- projektien kuvauksissa tutkitaan oliopohjaisten ja deklaratiivisten menetelmien sopivuutta nykyisille markkinoille sekä yrityksien valmiuksia soveltaa näitä tekniikoita käytännön projekteissa.
Tietokoneohjelma ei varmaankaan voi täyttää kaikkia sille asetettavia tavoitteita.
Erilaiset asiakaskohtaiset sovellusalueet ja tietotekniikan jatkuva kehittyminen asettavat aina suuren joukon toiveita toteutettaviksi piirteiksi. Jatkokehityssuuntiin on kirjattu ne suunnittelun ja toteutuksen aikana esille tulleet rakenteelliset vaihtoehdot, joiden toteuttaminen voidaan perustella hyvin. Lisäksi on pyritty selvittämään uusien ja odotettavissa olevien tietotekniikan kehityssuuntien hyväksikäyttöä jatkokehityksessä.
Työn tavoitteisiin kuului vielä järjestelmän markkinatilanteen ja odotettavissa olevan elinkaaren hahmottaminen.
Rajaukset
Tähän työhön ei kuulunut rakennettavan järjestelmän kaupallinen tuotteistus. Ulkopuo
lelle jäivät näinollen järjestelmän käyttöliittymän ja toimintojen viimeistely, käyttö
ohjeet ja myynninedistämismateriaali. Tämä työ ei ole rakennettavan järjestelmän järjestelmäkuvaus eikä käyttöopas. Toteutusta kuvattaessa käsitellään tarkemmin vain
niitä ominaisuuksia, jotka ovat tärkeitä tämän työn tavoitteiden kannalta.
Tavoitteena oli rakentaa mahdollisimman yleiskäyttöinen sovelluskehitin erityisesti strategisen suunnittelun tarpeisiin. Erilaisten sovellusalueiden erityispiirteitä ei ole tarkoitus käsitellä kovin laajasti, vaan lähinnä kerrotaan soveltamisesta saatuja kokemuksia.
Työssä ei varsinaisesti pyritty luomaan uutta tieteellistä teoriaa oliomallinnukseen tai funktionaaliseen ohjelmointiin, vaan pikemminkin soveltamaan uusimpia tutkimustuloksia ja menetelmiä kaupallisen tuotteen tekemiseen.