7 JATKOKEHITYSSUUNNAT
7.5 Merkkipohjaisen kyselykielen toteuttaminen
Rakennetut MUST-mallit voidaan käsittää oliotietokantoina, jotka sisältävät tyypillisesti paljon numeerista tietoa. Oliotietokannassa eteneminen tapahtuu olioiden välisiä viittauksia eli relaatioita pitkin. Jotta tietystä oliosta päästäisiin muihin siihen liittyviin olioihin, on oliota vastaavaan luokkaan täytynyt luoda etenemistä vastaava relaatio.
Johdettujen attribuuttien laskemiseen tarvittavat etenemisreitit on suhteellisen helppo kartoittaa ja kuvata relaatioiden avulla. Mielivaltaisten kyselyjen ja yhdistelyjen teko on kuitenkin osoittautunut ongelmalliseksi, sillä mallin rakentajan ei ole mahdollista eikä edes mielekästäkään varautua kaikkiin mahdollisiin tietojen yhdistelytapoihin.
Relaatiotietokannoissa eteneminen tapahtuu taulujen välisten yhdistelmien (join) avulla.
Periaatteessa minkä tahansa taulun mikä tahansa sarake voidaan lähes mielivaltaisen kuvauksen avulla yhdistää mihin tahansa toiseen sarakkeeseen. Kyselyt tehdään standardin SQL (Structured Query Language) -kielen avulla.
MUST-j ärjestelmä ei sisällä varsinaista SQL-kieltä vastaavaa kyselykieltä.
Taulukkomäärittelyt perustuvat rakennettuun TFC-kieleen, jonka avulla käytännössä luodaan linkkejä mallin tietojen ja taulukkonäkymien solujen välille. Lähestymistavan etuna on se, että mallin tietoalkioiden arvoja voidaan suoraan muuttaa syöttämällä soluihin uusia arvoja. Heikkoutena on kyvyttömyys tehdä mielivaltaisia kyselyjä, taulukkonäkymissä voidaan ainoastaan näyttää mallissa olevia lukuja, joten kaikki kyselyt on käytännössä laskettava mallin sisältämien instanssien attribuutteihin.
MUST-jäijestelmään tulisi rakentaa kyselykieli, jonka avulla malliin voitaisiin tehdä mielivaltaisia kyselyjä. Oliotietokannoille on yritetty kehittää SQL-kieltä vastaavia kyselykieliä [Ullm88], mutta yhteisesti hyväksyttyä syntaksia ei ole löydetty.
Oliotietokantojen yleistyessä standardin syntaksin merkitys kasvaa, joten alan kehitystä kannattaa seurata tarkasti.
Toinen vaihtoehto kyselykielen toteuttamiselle on käyttää SQL-kieltä sellaisenaan.
Lähestymistavan kiistaton etu on se, että SQL-on erittäin hyvin dokumentoitu ja usein käyttäjille suhteellisen tuttu kieli. Ongelman ydin on MUST-sovellusten olipohjaisuus, SQL-kielihän on suunniteltu relaatiotietokantoja varten. SQL-kyselyjä varten sovelluksen luokkia ja instansseja kohti tulisi määritellä yksikäsitteinen relaatiotietokannan taulurakenne. SQL-kyselyt kirjoitettaisiin näiden virtuaalisten tietokantataulujen mukaisesti, ja ne muutettaisiin suoritusvaiheessa oliomallin käsitteitä vastaaviksi. Taulukossa 14 on esimerkki yhtä luokkaa vastaavasta virtuaalisesta tietokantarakenteesta.
Taulukko 14 Olioluokkaa vastaavat relaatiotietokannan käsitteet
Luokka Suorite TABLE SUORITE
Relaatio Yritys (yksipaikkainen) COLUMN YRITYS [Varchar]
Relaatio Tuote (yksipaikkainen) COLUMN TUOTE [Varchar]
Relaatio Asiakas (yksipaikkainen) COLUMN ASIAKAS [Varchar]
Tietoalkio Hinta (kuukausilista 199401- 199612)
COLUMN HINTA [Number], COLUMN PERIOD [Charó]
Yhden luokan instansseihin kohdistuva kysely voidaan toteuttaa tulkitsemalla kaikki attribuutit luokkaa vastaavan taulun sarakkeina. Esimerkiksi suoritustietoja sisältävistä instansseista voitaisiin hakea yrityksen yl ajanjaksolla 199503 tuotteen tl myynti asiakkaittaittain kyselyllä: "SELECT SUM (HINTA) FROM SUORITE WHERE YRITYS = 'yl' AND TUOTE = 'tl' AND PERIOD = '199503' GROUP BY ASIAKAS". Taulujen väliset yhdistelyt voitaisiin toteuttaa samantyyppisellä tavalla, joskin kyselyn jäsentäminen ja suorittaminen olisivat huomattavasti vaikeampia.
Suoritustiedoista voitaisiin hakea yrityksittäin ja asiakkaittain ryhmiteltynä uusien tuotteiden myynti ajanjaksolla 199503 lausekkeella:
SELECT S.YRITYS, S.ASIÄKÄS, SUM(S.HINTA) FROM SUORITE S, TUOTE T
WHERE S.TUOTE = T.NIMI
AND T.KATEGORIA = 'Uusi Tuote' AND S.PERIOD = '199503'
GROUP BY YRITYS, ASIAKAS
Mielivaltaisen SQL-lauseen tulkitseminen tehokkaasti on todellisuudessa erittäin vaativa tehtävä. Mikäli kyselyjen tarve osoittautuu suureksi, voi olla mielekkäämpää tallettaa kaikki mallin sisältämät tiedot johonkin todelliseen relaatiotietokantaan, jonka kautta kyselyt voitaisiin suorittaa.
VIITTEET
[AbSu85] : Abelson, H. & Sussman, G.J., Structure and Interpretation of Computer Programs, The MIT Press, 1985.
[Berg87] : Bergqvist, J.T., A Type-Oriented Approach to Knowledge-Based Systems, Väitöskirja, Acta Polytechnica Scandinavica, Mathematics and Computer Science Series No. 47, Helsinki 1987.
[BrMy91] : Brealey, R.A. & Myers, S.C., Principles of Corporate Finance, fourth edition, McGraw-Hill, Inc., 1991.
[Budd91] : Budd, T., An Introduction to Object-Oriented Programming. Addison- Wesley, 1991.
[Eise87] : Eisenbach, S., Functional Programming: Languages, Tools and Architectures, John Wiley & Sons, Inc., 1987.
[Grie81] : Gries, D., The Science of Programming. Springer-Verlag, 1981.
[Hame90] : Hamermesh, R.G., Strategic Management, John Wiley & Sons, Inc., 1990.
[HyKaSy93] : Hyvönen, E., Karanta, I. & Syrjänen, M., Tekoälyn Ensyklopedia, Gaudeamus, Hämeenlinna, 1993.
[HyPa95] : Hyvönen, E. & Stefano De Pascale, Intervallit taulukkolaskentaan, Neljännesvuosisata teollisuuden tietotekniikkaa Teknillisessä korkeakoulussa, esitelmä juhlasymposiossa 27.10.1995.
[JoSc88] : Johnson, G. & Scholes, K., Exploring Corporate Strategy, Prentice Hall International, Inc., 1988.
[Juss91] : Jussila, P., Suoraopastus ja -dokumentaatio tyyppisuuntautuneessa ohjelmoin
tiympäristössä. Diplomityö, Tietotekniikan osasto, Teknillinen korkeakoulu, 1991.
[KePi84] : Keminghan, B.W. & Pike, R., The UNIX Programming Environment, Prentice Hall, Inc., 1984.
[Koms95] : Komsi, A., IGE - Interactive Graph Editor, User's Guide, Tekninen raportti, Nokia Tutkimuskeskus, 1995.
[Kump90] : Kumpulainen, A., A Knowledge-Based Planning Tool for Strategic Management, 6th IEEE Conference in Artificial Intelligence Applications, California, March 1990.
[KuPa89] : Kumpulainen, A. & Paajanen, M., STRATEX: Toiminnallinen kuvaus.
Tekninen raportti, Nokia Tutkimuskeskus, Marraskuu 1989.
[Lahd94] : Lahdelma, R., An Object-Oriented Mathematical Modelling System, Väitöskirja, Acta Polytechnica Scandinavica, Mathematics and Computing in Engineering Series No. 66, Helsinki 1994.
[NiPa93] : Niskanen, P. & Paajanen, M., Multinational Mining Company Simulation, XXIV Apcom, International Symposium on Application of Computers and Operations Research in the Minerals Industry, Montreal 1993.
[PaTu92] : Paajanen, M. & Tuomi, I., Adding Value to the Strategy Process Using Object-Oriented Modeling and Software Support: Theoretical Background and Practical Results, 25th Hawaii International Conference on System Sciences, 1992.
[Paaj87] : Paajanen, M., Käyttäjän ominaisuudet huomioivan käyttöliittymän toteutus.
Diplomityö, Tietotekniikan osasto, Teknillinen korkeakoulu, 1987.
[Paep93] : Paepcke, A., Object-Oriented Programming: The CLOS Perspective, The MIT Press, Massachusetts, 1993.
[Port85] : Porter, M.E., Competitive Advantage, Creating and Sustaining Superior Performance, The Free Press, New York, 1985.
[Prat76] : Prather, R.E., Discrete Mathematical Structures for Computer Science, Houghton Mifflin Company, 1976.
[Rämö94] : Rämö, J., Automated Cross-Platform Graphical User Interface Testing.
Diplomityö, Sähkötekniikan osasto, Teknillinen korkeakoulu, 1994.
[Rumb91] : Rumbaugh, J., Blaha, M., Premerlani, W., Eddy, F. & Lorensen, W., Object-Oriented Modeling and Design, Prentice-Hall International, Inc., 1991.
[Sedg88] : Sedgewick, R., Algorithms, second edition, Addison-Wesley Publishing Company, 1988.
[SiPeGa91] : Silberschatz, A., Peterson, J. & Galvin, P., Operating System Concepts, third edition, Addison-Wesley Publishing Company, 1991.
[Stee90] : Steele, G.L., Common Lisp, The Language, second edition, Digital Press, 1990.
[Stee87] : Steels, L., The deepening of expert systems, AICOM, 9-15.
[StE190] : Stroustrup, В. & Ellis, М., The Annotated C++ Reference Manual, Addison- Wesley Publishing Company, 1990.
[Tuom89] : Tuominen, P., Laskentasääntökieli, Sovelletun matematiikan erikoistyö, Tietotekniikan osasto, Teknillinen korkeakoulu, 1989.
[Ullm88] : Ullman, J.D., Principles of Database and Knowledge-Base Systems, volume I, Computer Science Press, 1988.
Tuotekäsikirjat
[Borl94] : Borland C/C++ 4.0, Borland, Inc., 1994.
[Digi92] : SmallTalk V, Digitalk, Inc., 1992.
[Lian94] : C++/Views 3.1, Liant Corporation, 1994.
[Logi95] : ERWin 2.0, Logic Works, 1995.
[Lotu93] : Lotus Improv 2.0, Lotus Corporation, 1993.
[Luci92] : Lucid CommonLisp 4.1/Sparc Development Environment, Lucid, Inc., 1992.
[Micr94a] : Microsoft Visual C/C++ 2.0, Microsoft Corporation, 1994.
[Micr94b] : Microsoft Excel 5.0, Microsoft Corporation, 1994.
[Micr93] : Microsoft Excel 4.0, Software Development Kit, Microsoft Corporation, 1993.
[Micr92] : Microsoft Windows 3.1, Software Development Kit, Microsoft Corporation, 1992.
[Noki90] : Rule Compiler 1.0, Nokia Tutkimuskeskus, 1990.
[Obje92] : Object Store 2.0, Object Design, Inc., 1992.
[Orac95] : Oracle Database Management System 7.0, Oracle Corporation, 1995.
LIITE A LASKENTASÄÄNTÖKIELEN SYNTAKSI
Toteutetun laskentasääntökielen syntaksi on seuraavassa esitetty BNF (Backus-Naur Form) -notaation [GrieSl] avulla. Kielioppisymbolit ovat kulmasulkujen sisällä.
Pystyviivalla erotetut rakenteet ovat vaihtoehtoisia. Aalto- tai hakasuluilla ympäröidyt rakenteet ovat valinnaisia. Aaltosuluilla ympäröidyt rakenteet voivat esiinty mielivaltaisen monta kertaa tai olla esiintymättä kertaakaan. Hakasuluilla ympäröidyt voivat esiintyä korkeintaan kerran. Lainausmerkkien sisällä esiintyvien rakenteiden on esiinnyttävä sellaisenaan. Ilman lainausmerkkejä tai kulmasulkuja esiintyvät symbolit on selitetty tuottosääntöjen jälkeen. Operaatioiden laskentajärjestys on esitetty erikseen liitteessä B.
<lauseke> = <lauseke> <2-paikkainen operaatio <lauseke>
= <1-paikkainen operaatio> <lauseke>
= ' (1 <lauseke> 1) ' ::= <funktiokutsu>
::= «viittaus>
: := <vakio>
<2-paikkainen operaatio> ::= 1+1 1 ' < ' 1 '<='
' : = ' 1 'AND' 'OR
«1-paikkainen operaatio ::= 1 - 1 'NOT'
I ~ I
<funktiokutsu> : := <funktion nimi>' (' [<lauseke>{1,1<lauseke>}] ') '
<viittaus> ::= [<globaali-osa>'.'] {<relaatio>'.1} <attribuutti>
<globaali-osa>: := 1&I&"1<instanssi>1"1 | 1&C&"1<luokka>'"1
<attribuutti> ::= <relaatio> | <tietoalkio>
<vakio> ::= <luku> | <lukulista> | «merkkijono
<lukulista> ::= '[' <luku>{1 1<luku>} ']'
«merkki jono> ::= 1 " 1 {«kirjainmerkki:»} 1 " 1
Luku tarkoittaa kokonaislukua tai desimaalipisteellistä reaalilukua etumerkkeineen.
Merkkijono koostuu kirjainmerkeistä, joita ovat kaikki tulostettavat ASCII-merkit.
Kaksoislainausmerkki " on esitettävä kenoviivan \ avulla merkkijonona l", yksittäinen kenoviiva on esitettävä kahtena kenoviivana H. Luokka, instanssi, relaatio ja tietoalkio ovat merkkijonoja, jotka määrittelevät vastaavan oliomallin käsitteen. Funktion nimi on merkkijono, joka on annettu jonkin rekisteröidyn funktion nimeksi.
LIITE В OPERAATIOIDEN LASKENTAJÄRJESTYS
Ensimmäisen kategorian operaatiot suoritetaan ennen myöhemmin tulevia kategorioita.
Yksipaikkaiset operaatiot, kategoria 1, ovat oikealta vasemmalle assosiatiivisia, kaikki muut ovat vasemmalta oikealle.
Kategoria Operaatio Kuvaus
1 - vastaluku
NOT looginen negaatio
2 Л potenssiin korotus
3 * kertolasku
/ jakolasku
4 + yhteenlasku
- vähennyslasku
5 > suurempi kuin
>= suurempi tai yhtäsuuri kuin
< pienempi kuin
<= pienempi tai yhtäsuuri kuin
6 o erisuuri
== yhtäsuuri
7 AND looginen ja
8 OR looginen tai
9 sijoitus
LIITE C LASKENTASÄÄNTÖKIELEN FUNKTIOT
Taulukkoon C.2 on koottu kaikki MUST-järjestelmän sisältämät sisäänrakennetut funktiot. Kategoria ryhmittelee samantapaiset funktiot kokonaisuuksiksi, joista käyttäjän helpompi löytää etsimänsä funktio. Kolmannessa sarakkeessa kerrotut funktion argumenttien tyypit on selitetty taulukossa C.l. Neljännessä sarakkeessa on muutamalla sanalla kerrottu argumenttien käyttötarkoitus.
Taulukko C.l Argumenttien tyypit Tunnus Tyypin selitys
D Liukuluku, kaksinkertainen tarkkuus (8 tavua)
L Liukulukulista
S Merkkijono
R Lista instansseja, relaation arvo
C Viittaus MOS-luokkaan
0 Viittaus MOS-instanssiin
? Mikä tahansa pakollinen argumentti, ei tyyppitarkastusta
* monta, yksi tai ei yhtään optionaalista argumenttia, ei tyyppitarkistusta
Taulukko C.2 Laskentasääntökielen funktiot
Kategoria Nimi Tyyppi Argumentit
Control if ??* condition, true-part[, false-part]
Control print S* message string
[,"SHOW"/"REPORT"/"filename.logM]
Control sequence * statements separated by
Control iterate ?DD* body, start, end [,step]
Control ask_user S message text
Control while_do D? condition, body
Control do_while ?D body, condition
Control macro S Macro command string
Control set_value
ss
name of item/relation, valueControl get_value
s
name of item/relationControl calculate D 0=updateViews, l=calculate all,
2=invalidate & calculate all, 3=validate all
Control call ? fimction(attribute / attributelist) to call
Control valid ? any expression
Control set_invalidation D l=normal, 2=no invalidation
Conversion concatT oNumberlist 7* item/itemlist[, more items/itemlists]
Conversion text D* number to be converted [,decimals(2), leading zeros(l)]
Conversion value S text to be converted
Conversion round DD number, amount of decimals
Conversion toString ? any object
Conversion tolnstance ? instancename or instancelist Conversion toInstanceList ? instance
Date string_to_date S text to be converted to days after 1.1.1900
Date weekstring_to_date S text to be converted to days after 1.1.1900
Date yearofdate D days after 1.1.1900
Date month_of_date D days after 1.1.1900
Date day_of_date D days after 1.1.1900
Date week_of_date D days after 1.1.1900
Date add_to_date D* days after
1.1.1900[,years,months,days,weeks]
Date convert_datelist ? item to be converted
Date scale_weekdays LL list of weights for days, daylist
Date get_date
Date get_time
File fileopen DSS filenum,filename,typetext(r=read,w=:w rite,a=append)
File fileclose D filenum
File fileeof D filenum
File file_write DS* filenum, text[,l=no linefeed]
File file_read D* filenum[,amount of chars 0=read one line]
Financial absolute_growth L numerlist Financial pay_back_period L numberlist
Financial present_value DL* interest rate, periods [,step]
Financial proportional_growth L numberlist
Financial cumulative L numberlist
Financial mean_value ?* numberlist [,weigths list]
Financial min 9* number/item list [,number/itemlist]
Financial max 9* number/item list [,number/itemlist]
Financial sum ? number/item list
Financial sum_together DL scale, numberlist
Financial values_from_growth DL initial value, growth percents Financial cagrowth L* numberlist [,start period]
Financial next 9* numberlist [,steps]
Financial prev 9* numberlist [,steps]
Financial choose_absolute D? index, number/item list Financial make_list_of DD length of the list, number ObjectOriented changeBaseClassT о C must class
ObjectOriented createMatrix2 CRSRS S
cellClass, A-insts, relation name from cell instancess to A, B-insts, relation name from cell to B, [, instance name prefix]
ObjectOriented createMatrix3 CRSRS RS
cellClass, A-insts, relation name from cell instancess to A, B-insts,...
ObjectOriented deleteThisInstance no parameters
ObjectOriented isDerivedFromClass OC must instance, must class ObjectOriented instancesOfClass C must class
ObjectOriented namedlnstance
s
instance's nameObjectOriented nameOfThis D 0=calculated object/1 calculated instance/2=instance's class
ObjectOriented name ? item/relation/instance/class ObjectOriented setlnstanceName S name for this instance
ObjectOriented thisClass returns this class ObjectOriented thislnstance returns this instance
Other sum_of_periods_list RS* relation, itemname(s), startPeriod, endPeriod
Other random
Relation count ? relation or string
Relation first R* relation [,count]
Relation last R relation
Relation positionlnList R* relation, [optional instance]
Relation instanceAt DR index, relation
Relation removeAt DR index, relation
Relation insertAt DRO index, relation, instance
Relation get ? itemlist
Relation set_cardinality DCS number of instances, class for
instances, base name for instances as string
Relation choose_many LR* list of booleans, list of instances [, optional distinct if 1
Relation sort RL relation, numberlist of weights
Relation join RR* relation 1, relation2 [, more relations]
Sql fetchSqlString OS* database instance, sql-statement [,column sep(,) ,row sep(;)]
Sql fetchSqlNumbers OS database instance, sql-statement Text concatToString S?* delimitor text, list of string items
[,more items]
Text listitems 7* must class or instance [,prefix for item name, T if only nonEmptys]
Text left SD text, number of chars
Text right SD text, number of chars
Text mid SDD text,start char, number of chars
Text length S text
Text find SS* text to find, within text [, start position(l)]
Text match SS* lookup value, lookup value list [,result value list, delimitor]
Text upper
s
textText lower
s
textText trim
s*
text[,direction( 1 =left,2=right,3=both(d efault)),additional charactersText translateCharacters
sss
text to be translated, original chars, result charLIITE D TOTEUTETTU TAULUKKOMÄÄRITTELYKIELI TFC
TFC-kieli on täysin tekstimuotoinen ja rivikohtainen. Jokainen rivi sisältää yhden käskyn. Käskyn osat erotetaan toisistaan pilkuilla ja käsky lopetetaan puolipisteeseen.
TFC-käskyssä ei saa olla ylimääräisiä välilyöntejä. Seuraavassa on esittetty TFC-kielen syntaksi BNF-notaation avulla. Notaatio on selitetty liitteessä A, samoinkuin tässä käytetyt rakenteet muuttuja ja merkkijono.
<TFC> : := {<komentO>1 ; 1}
<komento> ::= <vii11aus-komento> |
<teksti-komento> |
< vai intä - komento |
<1omakkeen-nimi-komento > |
<sql-komento
<viittaus-komento> 'CELL,' <koordinaatit> 1,1 <viittaus>
<viittaustyyppi> ’Transpose']]
<teksti-komento> ::= 'STRCELL,1 <koordinaatit> 1,1 <merkkijono>
<valinta-komento> ::= 'VARIABLE,1 <kokonaisluku> ',' <viittaus>
',' <viittaus> [',' <valintatyyppi> [',' cmerkkijono>]]
<lomakkeen-nimi-komento> ::= 'REMOTENAME, ' cmerkkijono>
<sql-komento> ::= 'SQLCELL, ' <koordinaatit> ',&I&"' <instanssi>
•viittaus'
<koordinaatit> ::= ['R' ['+' | '-'] <kokonaisluku>]
[ 'C' [' + ' I '-'] <kokonaisluku>]
<viittaus> ::= ks. liite A
<viittaustyyppi> ::= 'Value' | 'Sum' | 'SumOfPeriods' | 'Name' 'Type' I 'CSV I 'RuleName' | 'RuleText'
<valintatyyppi ::= 'SINGLE' | 'MULTI' | 'QUESTION'
TFC-kielestä on olemassa erillinen käyttöopas. Näkymien perusajatuksena on TFC- kielen yksikäsitteisten solukoordinaattien avulla kuvata taulukkomuotoisen näkymän kuhunkin soluun tulevat tiedot. Tiedot voivat olla vakiotekstejä, mallin sisältämiä attribuuttien arvoja tai SQL-tietokannan hakujen tuloksia. Näkymän tietojen muotoilu on siis rivi- ja sarakepohjainen. Luotaessa näkymän esittämiseen tarkoitettua Excel- lomaketta, on rivien ja sarakkeiden täsmättävä, jotta Excelissä tehty formatointi osuisi oikeille tiedoille. Excel-lomakkeelle ei siis kirjoiteta tietoihin liittyviä hakulauseita.
Seuraavassa on esimerkki TFC-kielen avulla tehdystä taulukkonäkymästä. TFC-kielinen kuvaus on kopioitu suoraan taulukkomäärittelyistä. Kuvassa D.l on näkymä MUST- sovelluskehittimen avulla tarkasteltuna. Kuvassa D.2 on sama näkymä
Excel-lomakkeelta tulostettuna. Excel-lomakkeella on tehty ainoastaan pientä ulkoasun formatointia ja siihen on liitetty painonappeja sovelluksen logiikan mukaisesti. Kuvassa D.3 on sama lomake esitetty siten, että siihen on lisätty tietojen perusteella piirrettävä pylväsdiagrammi ja piilotettu rivit 3-8 käyttäjältä.
STRCELL,R1C1,Division Revenue Trend Chart;
REMOTENAME,DIVIREV.XLS;
VARIABLE,1,User.SelectedDiv,&I&"GLOBAL".AllDivs;
CELL,R1C5,User.SelectedDiv;
CELL, R3C2 , &IS= "GLOBAL" .MonthNames, CSV;
STRCELL,R3CI,Revenue;
STRCELL,R+l,Actuals ; STRCELL,R+l,Budget ; STRCELL,R+l,Forecast ; STRCELL,R+l,Previous Year;
CELL,R4C2,User.SelectedDiv.Actuals.Revenue ; CELL,R+l,User.SelectedDiv.Budget.Revenue ; CELL,R+l,User.SelectedDiv.Forecast.Revenue ; CELL,R+l,User.SelectedDiv.PreviousYear.Revenue ;
Kuva D. 1 Määrittelyjä vastaava taulukkonäkymä MUST-järjestelmässä
Division Revenue Trend
Revenue Actuels Budget Previous Yøer
CoolIngSyetemsDIvlslon
г
30.40 33.00 32.10 31.10 37.80 43.60 40.10 36.10 0.00 0.00 0.00 0.00
30.40 32.20 32.30 32.00 36.20 38.00 36.30 34.30 37.00 37.00 39.00 41.00
32.00 34.80 33.80 32.60 39.60 45.60 41.80 37.80 39.00 40.00 40.00 41.00
25.40 26.80 26.95 26.88 30.30 31.70 30.45 28.70 30.40 31.10 31.95 32.80
Ж т
Change Div.Ж
Corporation D - Ш-.:: ■■‘¿•'•жЫЕШттШKuva D.2 Määrittelyjä vastaava taulukkonäkymä Excel-taulukkona
Kuva D.3 Määrittelyjä vastaava näkymä Excelin piirto-ominaisuuksilla muotoiltuna
LIITE E Projektikuvaus
ICL Datan MUST™-pohjainen toiminnansuunnittelusovellus
ICL Data on ICL:n Suomen ja Baltian markkinoista vastaava toimintaryhmä, jonka liikevaihto vuonna 1994 oli noin 1.7 miljardia markkaa. ICL Data on Suomen suurin tietotekniikkatoimittaja, jonka toiminta pohjautuu laajaan palvelu-, järjestelmä- ja laiteratkaisujen tarjontaan ja niihin liittyvään osaamiseen.
ICL Data-ryhmän toiminnansuunnittelu koostuu joukosta jatkuvasti käynnissä olevia toimintoja ja prosesseja ryhmän kilpailukyvyn jatkuvaksi parantamiseksi. Ryhmä on jaettu n. 50 liiketoiminta-alueeseen, jotka kukin tekevät ja ylläpitävät omaa strategiasuunnitelmaansa. Lisäksi ryhmän suurasiakkaista hallitaan asiakaskohtaisia suunnitelmia, tärkeimmistä järjestelmäliiketoiminta- alueista järjestelmäsuunnitelmia ja palvelualueista palvelusuunnitelmia. Suunnitelmat sisältävät kilpailutilanneanalyysit, menestystekijöiden määrit
telyn, niihin liittyvän tavoiteasetannan toimenpide- ohjelmineen, strategiavalinnan ja siihen liittyvän tavoiteasetannan sekä omaan toimintaan liittyviä taloussuunnitelmia.
Suunnittelussa sovelletaan jatkuvan suunnittelun ajattelua, jolloin lähtökohtaisesti kunkin liiketoiminta-alueen vastuuhenkilö vastaa myös oman suunnitelmansa ja sen taustalla olevan analyysin ajan tasalla olosta. Suunnittelu on tiiviisti kytketty yrityksen operatiiviseen johtamiseen:
tavoiteasetannan ja toimenpideohjelmien seurannan osalta normaaliin johtoryhmä- ja johtamis- menettelyyn, sekä numerotarkastelujen osalta budjetointiin ja talousseurantaan.
Hajautettu MUST -sovellus
Useita vuosia jatkuneen menetelmäkehityksen ja suunnittelu- ja seurantaprosessien kehittämisen myötä tuli mahdolliseksi toteuttaa suunnittelua tukeva tietojärjestelmä käyttäen ensin Nokia- yhtymän ja Outokummun yhteistyönä kehitettyä Stratex-järjestelmää, josta siirryttiin hajautettuun MUST-sovellukseen. Noin kymmenen liiketoiminta
yksikön suunnitteluvastaavalla on käytössään oma, omat liiketoiminta-alueet sisältävä MUST-malli yksikön omien analyysien ja yhteenvetojen tekemistä varten. Liiketoiminnan kehittämistoiminnolla on koko ICL Data-ryhmän kattava suuri MUST- sovellus. Lisäksi markkinatutkimuksen käytössä on oma markkina- ja kilpailijaseurantasovelluksensa.
kommunikoivat keskenään käyttäen ICL: n TiimiPostia™.
Liiketoiminnan kehittäminen
zW,
- ICL Data-ryhmän yhteenvedot - SBA-vertailut ja rankingit - skenaariotarkastelut
Sovellukset on integroitu ICL Datan laskentajärjestelmiin niin, että toteuma-, budjetti- ja ennusteluvut määritellyllä tarkkuudella saadaan luettua suoraan näistä järjestelmistä.
Sovelluksen käyttö
Sovellukseen on rakennettu joukko erilaisia analysointi- ja simulointityökaluja. Niillä tuetaan suunnitelmien vertailua, herkkyysanalyysien tekemistä eri skenaarioiden kate-, tulos- ja markkinaosuus-vaikutusten arvioimiseksi sekä liiketoiminta-alueiden vertailun tukemiseksi.
Oleellinen tehtävä MUST-sovelluksella on eri dimensioissa tehtävien tarkastelujen dynaamisessa tuottamisessa. Tyypillisiä näkökulmia ovat organisaatioryhmittelyn lisäksi erilaiset vaihto
ehtoiset tavat ryhmitellä liiketoimintoja, tuote/tarjonta-näkökulma, asiakastoimialatarkastelut sekä markkina- ja kilpailijakohtaiset vertailut.
Markkina- ja kilpailijaseurantamallilla kootaan kilpailij ainformaatiota yhteenvetoina liiketoiminta- kohtaisista arvioista ja verrataan niitä ulkoiseen tietoon sekä käsitellään ulkoisista tietopankeista ja tietolähteistä saatavia ennustetietoja esimerkiksi talous- ja markkinatutkimusaineiston osalta. Näitä yhteenvetoja jaetaan eri osamallien käyttöön analysointi- ja vertailutarkoituksiin. puh. 90-2705 041 fax 90-693 1555 PL 458
00101 HELSINKI
LIITE E Projektikuvaus
Maa- ja metsätalousministeriön tietopalvelukeskuksen MUST™- pohjainen hintatietojen seuranta
järjestelmä
Maa- ja metsätalousministeriön tietopalvelukeskus TIKE vastaa ministeriön tietojärjestelmien kehittämisestä ja ylläpidosta. Järjestelmien avulla toteutetaan laissa säädettyjä päätöksiä niin kansallisella kuin yksittäisen maanviljelijänkin tasolla. Lakimuutokset asettavat suuria vaatimuksia rakennettaville järjestelmille ja niiden ylläpidolle.
EU-hintaseurantajärjestelmä
Euroopan Unionin lainsäädännössä on asetuksia, joiden mukaan jäsenmaiden on seurattava tiettyjen elintarvikkeiden hintoja ja määriä sekä raportoitava niistä komissiolle. Suomen ja EU:n välisissä liittymisneuvotteluissa sovittiin lisäksi suojalausekkeesta, jonka nojalla Suomi voi pyytää komissiota ryhtymään toimenpiteisiin, mikäli lisääntynyt tuonti EU-maista aiheuttaa markkinahäiriöitä kotimaan tuotannolle.
Suomessa seurattavat tiedot kerätään suoraan tuottaja- ja tuontiyrityksiltä. Viljahintoja kerätään alueellisilta välitysliikkeiltä ja teollisuudelta, lihatietoja suurimmilta teurastamoilta, maitotuotteiden tietoja meijereiltä ja puutarhatuotteiden tietoja tuontiliikkeiltä ja keskitetysti tuottajajärjestöiltä. Markkinahäiriöiden estämiseksi tulee seurantatiheyden olla riittävän tarkka. Hedelmien ja vihannesten tuontihintoja seurataan ja raportoidaan komissiolle päivittäin.
Järjestelmän kautta liikkuvat näinollen huomattavan suuret tietomassat.
Hintaseurantajärjestelmän rakenne
Raportoitavat tiedot saapuvat järjestelmään joko tehtyjen fax-lomakepohjien mukaisina tulosteina tai automaattisina EDI-sanomina. Faxien syöttöön on rakennettu erillinen ohjelma, jolla aineisto saadaan määrämuotoiseen tiedostoon. Syötössä käytetään varsinaisen MUST-sovelluksen parametritietoja sekä muodostetaan yksikäsitteinen tunniste jokaiselle syötetylle faxille. EDI-sanomat käsitellään automaattisesti ICL:n TeamEDI™-ohjelmiston avulla. Saapuville tiedoille tehdään tarkistukset ja ne
talletetaan tiedostoihin valmiiksi odottamaan sisäänlukua.
Tietojen kulku raportoivilta yrityksiltä tietojen tarvitsijoille:
( Raportoiva yrity» j
Faxilla saapuneen
Projekti käynnistettiin marraskuussa 1994. EU:n vaatiman hintaseurannan tuli olla käytössä välittömästi Suomen liittymisen jälkeen tammikuussa 1995. Työmäärä oli suuri, määritysvaiheessa ministeriön ja komission välillä käytiin vilkasta keskustelua seurattavien tietojen substanssikysymyksistä. Tietoa raportoivien suomalaisten yritysten ohjeistus tehtiin järjestelmän määrittelyvaiheessa kerättyjen tietojen perusteella.
Järjestelmän avulla tehtyjä raportteja alettiin lähettää heti tammikuun ensimmäisen viikon jälkeen. Suomi oli ensimmäinen 1995 EU:hun liittynyt maa, jonka aineisto saapui komission käsiteltäväksi.
Yhteystiedot
ViSolutions Oy Porkkalankatu 7 Teemu Lehto 00180 HELSINKI
puh. 90-2705 041 fax 90-693 1555 Maa- ja metsätalouministeriön
Tietopalvelukeskus Liisankatu 8 G Pasi Koskinen 00171 HELSINKI
LIITE E Projektikuvaus
Valtiokonttorin MUST ™-pohjainen Johdon tietojärjestelmä JOTI
Valtiokonttorin JOTI-järjestelmä
Valtiokonttori on tulosjohdettu, monialainen palvelu- virasto, jolla on sekä maksullisia palveluja tarjoavia että viranomaistehtäviä hoitavia yksiköitä. Yksiköt tuottavat talous- ja henkilöstöhallinnon asiantuntijapalveluja. Valtiokonttorin organisaatiota kuvataan yhteistyöverkkona:
JOTI-järjestelmän rakenne
JOTI on rakennettu MUSTilla ja sen käyttöliittymän
JOTI on rakennettu MUSTilla ja sen käyttöliittymän