Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli 4.11.2008 Harri Laine 1
Olioperustainen ohjelmistokehitys Olioperustaisuus (object oriented software development) järjestelmä (system) on olio (object), joka tuottaa tietojenkäsittelypalveluita Olio on kokonaisuus (entity), joka kykenee tuottamaan omaan tietämykseensä (information contents) perustuvia palveluita (service / operation / method) 4.11.2008 Harri Laine 2
Olioperustainen ohjelmistokehitys Olio voidaan nähdä abstraktiona, jota voidaan soveltaa eri tilanteissa eri tavoin Olio-ohjelmoinnissa: ohjelman suoritus etenee tietokoneen sisuksissa toimivien tietojenkäsittelyolioiden yhteistyön tuloksena olioiden palvelut ovat suorituksen askelia Tietojärjestelmän palvelut saadaan aikaan suorittamalla ohjelmia 4.11.2008 Harri Laine 3
Tietojärjestelmän palvelut ja olio-ohjelmointi tietojärjestelmä Palvelu tuottaa Ohjelman suoritus toteutuu Ohjelmaolioiden yhteistyönä 4.11.2008 Harri Laine 4
Olioiden yhteistyö ohjelmassa Ohjaa suoritusta Olio 1 Palvelu a Olio 2 Palvelu d tietää Käyttää apuna Olio 3 Palvelu b Olio 4 Palvelu c 4.11.2008 Harri Laine 5
Liiketoiminta olioiden yhteistyönä Toisaalta: liiketoiminta voidaan myös hahmottaa liiketoiminnan osapuolten (jälleen olioita) välisenä yhteistyönä - yleensä liiketoiminnan osapuolina ovat organisaatioyksiköt ja henkilöt 4.11.2008 Harri Laine 6
Liiketoiminnan osapuolten yhteistyötä Vastaanota tilaus Virkailija Asiakas toimitus varasto 4.11.2008 Harri Laine 7
Liiketoiminnan osapuolten yhteistyötä Vastaanota tilaus Virkailija Asiakas käyttää toimitus varasto varastojärjestelmä Tilauksen vastaanotto Tilauskannan hoito käyttää Tee kuormakirja 4.11.2008 Harri Laine 8
Osajärjestelmät olioina Järjestelmä voidaan jakaa osiin järjestelmän palvelut osien yhteistyön tuloksena Yleensä kunkin osajärjestelmän vastuulla on jokin toiminnallinen kokonaisuus. Osajärjestelmät voidaan nähdä olioina Osajärjestelmä voidaan edelleen jakaa pienempiin osajärjestelmiin, jne 4.11.2008 Harri Laine 9
Osajärjestelmät olioina osajärjestelmä Järjestelmä 4.11.2008 Harri Laine 10
Vaatimusten kuvaaminen Vastaanota tilaus Virkailija Liiketoiminta Asiakas käyttää toimitus varasto varastojärjestelmä Tilauksen vastaanotto Tilauskannan hoito Kuormakirjan teko käyttää Palvelut 4.11.2008 Harri Laine 11
Vaatimusten kuvaaminen Vaatimukset liiketoimintamallien avulla erilaisia vaihtoehtoja sille, miten liiketoimintaa pitäisi kuvata liiketoiminnan osapuolten väliset työnkulut liiketoimintatehtävät (business use cases) perustuu käyttötapausmalliin (use case model) 4.11.2008 Harri Laine 12
Liiketoiminnan sidosryhmät Kokonaiskuva liiketoiminnasta liiketoiminnan sidosryhmäkaaviona (business context diagram) Kuten tietovuokaavioista tuttu sidosryhmäkaavio, mutta prosessina koko liiketoiminta Ulkoiset tahot kuten sidosryhmäkaaviossa Yhteydet sidosryhmien ja liiketoiminnan välillä esittävät sidosryhmiltä liiketoimintaan saatavia tai niille toimitettavia tietoja 4.11.2008 Harri Laine 13
Liiketoiminnan sidosryhmät Kirjan esimerkkikuva: 6.1 (markkinoinnin vaikutusten ja kustannusten analysointia) 4.11.2008 Harri Laine 14
Liiketoimintatehtävämalli Liiketoiminnan tarkempi kuvaus liiketoimintatehtävämallin (business use case model) avulla. Ylimmän tason mallissa kuvataan tärkeimmät liiketoiminnan osaprosessit ja niihin osallistuvat tahot. Erikoistapaus UML:n käyttötapausmallista (use case model) 4.11.2008 Harri Laine 15
Käyttötapausmalli Käyttötapaus (use case) Järjestelmän avulla suoritettava looginen tavoitteellinen tehtäväkokonaisuus, jolla on lähtökohta ja lopputulos Järjestelmän toiminnan kuvaus Sanallinen kuvaus ei muotovaatimuksia esitetään tyypillisesti toimintosarjana käyttäjän kannalta tarkasteltuna mitä käyttäjä tekee tavoitteensa saavuttamiseksi, mitä palvelua saa riittävän yksityiskohtainen ei käyttöliittymäasioita eikä toteutukseen liittyviä yksityiskohtia 4.11.2008 Harri Laine 16
Käyttötapausmalli Käyttötapaus voidaan kuvata eri tarkkuuksilla Lisää yksityiskohtia suunnittelun edetessä Tiivis Laaja Pari lausetta Pari kappaletta Yksityiskohtainen dokumentti 4.11.2008 Harri Laine 17
Käyttötapausmalli Käyttötapaus. Käyttötapaus voi kuvata liiketoimintaa (liiketoimintatehtävä) tai Käyttötapaus voi kuvata järjestelmän käyttöä (system use case) yllä olevien kytkentä jää heikosti määritellyksi ja epämääräiseksi - UML ei tarjoa välineistöä eri tasoisten käyttötapausmallien yhdistämiseen voisi ajatella, että liiketoimintatehtävään (-prosessiin) liittyisi useita järjestelmän käyttöä kuvaavia käyttötapauksia 4.11.2008 Harri Laine 18
Käyttötapausmalli Käyttötapauksen kuvauksessa Nimi (tekemistä, esim. lainaus, palautus) (name) Versio Tavoite (goal) mitä tarkoitus saavuttaa Yhteenveto (summary) tiivis kuvaus Käyttäjät (actors) osallistujat, välitön / välillinen Lähtötilanne (pre-conditions) millä edellytyksin toimii Käynnistyminen (triggers) mikä laukaisee toiminnan Peruskulku (basic course of events) miten etenee normaalisti Vaihtoehtoiset kulut (alternative paths) eteneminen poikkeustilanteissa Lopputilanne (post-conditions) mihin päädytään Liiketoimintasäännöt (business rules) säännöt, joita toimintaan liittyy 4.11.2008 Harri Laine 19
Käyttötapausmalli Käyttäjä (actor) Ulkopuolinen taho (henkilö, rooli, laite, järjestelmä tai osajärjestelmä), joka osallistuu käyttötapauksen kulkuun Välitön käyttäjä suora osallistuminen (esim. toimihenkilö joka käynnistää raportin tekemisen) Välillinen käyttäjä epäsuora osallistuminen (esim., viranomainen, joka saa raportin) Käyttäjä toimii vuorovaikutuksessa järjestelmän kanssa 4.11.2008 Harri Laine 20
Käyttötapausmalli Käyttötapausmalliin liittyy graafinen kuvaustekniikka, jolla voidaan kuvata Käyttäjän yhteys käyttötapauksiin Käyttäjien suhteita toisiinsa Käyttäjä voi olla erikoistapaus toisesta (tai päinvastoin toisen yleistys) [generalization] Käyttötapausten suhteita toisiinsa Käyttötapaus voi olla erikoistapaus tai yleistys Käyttötapaus voi olla toisen laajennus (esim. poikkeustilannetoiminnot) [extends] Käyttötapaus voi sisältää toisen tapauksen [include] HUOM: sekä käyttäjät että käyttötapaukset ovat tyyppitasolla eivät yksilöitä 4.11.2008 Harri Laine 21
Käyttötapausmalli 'Virallisessa' UML-notaatiossa tikku-ukko Asiakas Tilin käyttö yleistys Tililtä otto Tilillepano Saldokysely erikoistapauksia tilin käytöstä <<include>> <<include>> <<include>> Kirjautuminen <<extends>> Kirjautumisen epäonnistuminen 4.11.2008 Harri Laine 22
Käyttötapausmalli TKTL:n ilmoittautumisjärjelmä opetushallinto opiskelija raportit opetusohjelma kurssitarjonta opetustiedot ilmo ilmoittautumiset ja peruutukset ilmoittautumis tilanne opettaja ilmoittautumis tilanne autentikointikysely opiskelijatiedot tunnushallinto suoritustiedot Oodi kurssikirjanpito 4.11.2008 Harri Laine 23
Käyttötapausmalli TKTL:n ilmoittautumisjärjelmä opiskelija <<extends>> ilmoittautuminen estetty opetustarjonnan selvittäminen peruminen <<include>> <<include>> tunnistautuminen esitieto-ongelma kertausongelma 4.11.2008 Harri Laine 24
Käyttötapausmalli TKTL:n ilmoittautumisjärjelmä Ilmoittautuminen (peruskulku) opiskelija valitsee opetustarjonnasta opetustapahtuman jos opiskelija on tuntematon suoritetaan tunnistautuminen tunnistautuminen onnistui järjestelmä luo tai päivittää opiskelijan henkilötiedot järjestelmä kirjaa ilmoittautumisen Tavoite: saada varmistettua kurssipaikka 4.11.2008 Harri Laine 25
Käyttötapausmalli TKTL:n ilmoittautumisjärjelmä Poikkeustapauksia: opiskelijalla on liika yrityskertoja ryhmään pääsemiseksi opiskelija ei ole suorittanut esitietokursseja ryhmässä ei olekaan tila opiskelija on jo ilmoittautunut kurssille tunnistautuminen ei onnistunut 4.11.2008 Harri Laine 26
Lähtötilanne Käyttötapausmalli TKTL:n ilmoittautumisjärjelmä Kurssit on avattu ilmoittautumisille Lopputilanne ilmoittautuminen on kirjattu Käynnistyminen Opiskelija aktivoi Muuta Ruuhkahuippu periodin alussa noin 5 minuutin aikana 500 ilmoittautumista 4.11.2008 Harri Laine 27
Käyttötapausmalli TKTL:n ilmoittautumisjärjelmä Sääntöjä: joillekin kursseille (LAMA,TIRA,RIO) on määritelty tarkistettavat esitietovaatimukset harjoitustyökurssien normaaliryhmään voi ilmoittautua vain kerran perus- ja aineopintojen pakollisille kursseille voi osallistua vain kahdesti 4.11.2008 Harri Laine 28
Käyttötapausmalli UML:n käyttötapausmallin kuvaesityksessä on kovin vähän informaatiota luettelo riittää usein Käyttötapauskokoelman tulisi määritellä järjestelmän toiminnallisuus kokonaan kattavuuden varmistamiseen ei kuitenkaan ole välineitä (voivat olla päällekkäisiä, sisältö tekstin varassa) soveltuu huonosti, jos järjestelmä ei ole vuorovaikutteinen 4.11.2008 Harri Laine 29