Olioiden yhteistoiminta

Samankaltaiset tiedostot
Johdatus sovellussuunnitteluun, s2000, osa3 Helsingin yliopisto;/tktl. Harri Laine 1. Järjestelmän palvelujen määrittely

Johdatus sovellussuunnitteluun, s2001, osa 3 Helsingin yliopisto / TKTL. Harri Laine / Inkeri Verkamo 1. Järjestelmän palvelujen määrittely

Johdatus sovellussuunnitteluun, s99, osa5 Helsingin yliopisto;/tktl DO NOT PRINT THIS DOCUMENT. Harri Laine 1. Olioiden yhteistoiminta

Johdatus sovellussuunnitteluun, s99, osa5 Helsingin yliopisto;/tktl DO NOT PRINT THIS DOCUMENT. Harri Laine 1. Olioiden yhteistoiminta

Johdatus sovellussuunnitteluun, s2000, osa5 Helsingin yliopisto;/tktl. Harri Laine 1. Luokkakaavion tarkoitus. Luokkakaavion tarkoitus

Ohjelmistotekniikan menetelmät Luokkamallit ohjelmiston mallintamisessa Harri Laine 1

Luokkakaavion laatiminen

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

Ohjelmistojen mallintaminen, sekvenssikaaviot

Johdatus sovellussuunnitteluun, s 2001, osa 4b Helsingin yliopisto / TKTL Harri Laine / Inkeri Verkamo 1. Luokkakaavion tarkoitus

Johdatus sovellussuunnitteluun

Johdatus sovellussuunnitteluun

Ohjelmistotekniikan menetelmät, käyttötapauksiin perustuva vaatimusmäärittely

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Johdatus sovellussuunnitteluun

Johdatus sovellussuunnitteluun

Ohjelmistotekniikan menetelmät, UML

Ohjelmistojen mallintaminen Olioperustainen ohjelmistomalli Harri Laine 1

UML - unified modeling language - use cases

Ohjelmistojen mallintaminen Tietovuokaaviot Harri Laine 1

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

1. Tarkastellaan seuraavaa kaaviota

Määrittelyvaihe. Projektinhallinta

Ohjelmistojen mallintaminen olioiden elinkaaret - tilakaavio Harri Laine 1

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Käyttäjien tunnistaminen on ensimmäinen tehtävä järjestelmän palveluja määriteltäessä. Käyttäjien löytämiseksi voidaan esittää kysymykset:

Olioperustaisuus (object oriented)

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustaisuus (object oriented)

Ohjelmistojen mallintaminen. Luento 2, pe 5.11.

Johdatus sovellussuunnitteluun, s99, osa2 Helsingin yliopisto;/tktl Harri Laine 1. Olioperustainen ohjelmistokehitys

käyttötapaukset mod. testaus

Ohjelmistotekniikan menetelmät, kevät 2008

UML - unified modeling language

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistotekniikan menetelmät, luokkamallin laatiminen

Olioiden yhteistyön mallintaminen

Ohjelmistojen mallintaminen, käyttötapauksiin perustuva vaatimusmäärittely

Nimi: Henkilötunnus: {id} {+id}

Luokkakohtaiset eli stattiset metodit ja attribuutit

UML -mallinnus Viestiyhteyskaavio EERO NOUSIAINEN

Yhteydelle voi antaa nimen kumpaankin suuntaan Sille ei tarvise antaa lainkaan nimeä Yhteysnimen asemasta tai lisäksi voidaan käyttää roolinimiä

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

Ohjelmistojen mallintaminen, mallintaminen ja UML

Tietokantasuunnittelun pääperiaatteena on tiedon toiston välttäminen. Tiedon toistumiseen liittyy monenlaisia ongelmia.

UML- mallinnus: Tilakaavio

Joskus yleistäminen voi tapahtua monen ominaisuuden pohjalta. Myös tällöin voi tulla moniperintätilanteita.

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

UML:n yleiskatsaus. UML:n osat:

Liiketoimintaprosessin kuvaus (esim. osapuolten välisenä yhteistyökaaviona) Sidosryhmäkaavio. karkea keskeistä tietosisältöä kuvaava luokkakaavio

Käyttötapausanalyysi ja testaus tsoft

Toiminnot eli käyttäytyminen. Tieto eli rakenteelliset ominaisuudet

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

Luokka- ja oliokaaviot

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Tällä harjoituskerralla on tarkoituksena harjoitella käyttötapaus-, luokka- ja tapahtumasekvenssikaavioiden luontia.

Ohjelmistojen mallintaminen luokkamallin laatiminen

Analyysi, staattinen mallintaminen, kohdealueen malli ja luokkakaavio

5. Järjestelmämallit. Mallinnus

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Ohjelmistojen mallintaminen Luokkakaaviot Harri Laine 1

Ohjelmistojen mallintaminen, kertausta

Ohjelmistotekniikan menetelmät

Javan perusteita. Janne Käki

Ohjelmistotekniikan menetelmät

Ohjelmistojen mallintaminen, kesä 2010

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Johdatus sovellussuunnitteluun, s99, osa3 Helsingin yliopisto;/tktl Harri Laine 1. Olioiden väliset yhteydet. Olioiden väliset yhteydet

UML -mallinnus TILAKAAVIO

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

Ohjelmistojen mallintaminen luokkamallin laatiminen

Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005

Haaga-Helia / TIKO-05 1 (12) Tietokannan suunnittelu ja Toteutus Outi Virkki

Ohjelmistojen suunnittelu

Vaatimusmääritelystä UML:n avulla

Ohjelmoinnin perusteet Y Python

TOIMINNALLINEN MÄÄRITTELY MS

TIE Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

1. Yleistä ohjeistusta

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

Ohjelmistotekniikan menetelmät, koe

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Ohjelmistojen mallinnus Ohjelmistoarkkitehtuuri Harri Laine 1

Tietokantojen perusteet k2004helsingin yliopisto/tktl Tietokantojen perusteet, s 2007 ER-mallin peruskäsitteet.

812341A Olio-ohjelmointi, IX Olioiden välisistä yhteyksistä

Luento 3 Tietokannan tietosisällön suunnittelu

VH5, JOTU, MagicDraw:n käyttö

HELIA 1 (14) Outi Virkki Käyttöliittymät ja ohjlmiston suunnittelu

Ohjelmistojen mallintaminen, arkkitehtuuria ja rajapintoja

Tietokantojen suunnittelu, relaatiokantojen perusteita

Määrittely- ja suunnittelumenetelmät

Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset. Käyttötapaukset

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Tietokantasovellusten harjoitustyö

Analyysi on tulkkaamista

Metodit. Metodien määrittely. Metodin parametrit ja paluuarvo. Metodien suorittaminen eli kutsuminen. Metodien kuormittaminen

Transkriptio:

Olioiden yhteistoiminta Oliojärjestelmän toiminta perustuu olioiden yhteistyöhön. Olioiden yhteistyön selvittäminen on kiinteästi sidoksissa olioiden palveluiden määrittelyyn, sillä yhteistyö toteutuu palvelujen kautta. Yhteistoimintakuvauksilla kuvataan, miten palveluja käytetään. Olioiden yhteistoiminnan kuvaaminen on ohjelmiston suunnitteluvaiheen tehtävä Yhteistyökuvauksia voidaan määrittelyvaiheessa käyttää liiketoiminnan kuvaamiseen

Yhteistyö UML esittelee kaksi tekniikkaa yhteistoiminnan kuvaamiseen. Sekvenssikaavion (yhteistyöpolut) (sequence diagram), jossa keskitytään erityisesti kuvaamaan operaatioiden tapahtumajärjestystä ja toimintaan liittyvien viestien kulkua. Sekvenssikaavion toinen ulottuvuus on aika. Yhteistyörakennekaavion (collaboration diagram), jossa keskitytään kuvaaman, sitä miten yhteistyö hyödyntää olioiden välisiä kytkentöjä

Sekvenssikaavio Sekvenssikaavio kuvaa: olion (myös järjestelmä on olio) palvelun suoritukseen liittyvän olioiden yhteistyön mitä avustavia olioita palvelun suoritukseen osallistuu ja mitä näiden palveluja käytetään missä järjestyksessä avustavien olioiden palveluita käytetään

Sekvenssikaavio aloitus viesti olio1:luokka olio2:luokka operaatio / palvelu [ehto] viesti (parametrit) nimeää käytettävän palvelun palkin pituus kuvaa palvelun kestoa paluuarvot Oman palvelun käyttö aika

Sekvenssikaavio Viestit ovat yleensä palvelujen kutsuja (palvelupyyntöjä) = pavelun nimi (parametrit) käytännössä metodikutsu oliohjelmassa ehto ei ole välttämätön palveluun liittyvä paluunuoli jätetään yleensä piirtämättä vaikka palaute saataisiinkin (kaavio tulee näin yksinkertaisemmaksi)

Sekvenssikaavio Esimerkki class A { B oliob; C olioc; D oliod; public int doit() { oliob.assist1(); olioc.assist2(oliod); } class B { E olioe; public void assist1() { olioe.dosomething(); } class C { public void assist2(d od) { od.serviced()}

Sekvenssikaavio olioa:a oliob:b olioe:e olioc:c oliod:d doit assist1() dosomething serviced assist2(oliod);

Sekvenssikaavio Luonti ja tuhoaminen create :Apuluokka use delete Ei saa aikaan esim. Rational Rosella

Sekvenssikaavio SILMUKAT Palvelua pyydetään useilta olioilta Koottua palvelujoukkoa pyydetään useilta * palvelu * koottu

Sekvenssikaavio Yhteistyöketjuja käytetään havainnollistamaan oliorakenteen toimintaa Ei kannata laatia jokaiselle palvelulle Laaditaan keskeisille palveluille ja tilanteisiin, joissa kaavioiden käyttö edistää rakenteiden ymmärtämistä Ei ole sääntöjä kuinka pitkä yhteistyöketju kaaviossa tulisi esittää, mutta 2-3 viestiä pidemmät ketjut pikemminkin sotkevat kuin havainnollistavat mitään

Sekvenssikaavio Ei kaikkea samaan kaavioon Käytettävää palvelua kuvaava erillinen kaavio

Yhteistyörakennekaavio Yhteistyörakennekaaviossa (collaboration diagram) näkyy miten, yhteistyö perustuu olioiden välisiin kytkentöihin 1: palvelu1 olio1 yhteys1 olio2 Järjestysnumero kuvaa suoritusjärjestyksen Numerointi voi olla tasoittainen 1.1: palvelu2 olio3 yhteys2 Käytettävä palvelu (viesti)

Yhteistyörakennekaavio doit OlioA:A 1:assist1() OlioB:B 2.1:serviceD 2:assist2(olioD) 1.1:doSomething OlioD:D OlioC:C OlioE:E

Palvelujen määrittely Lähdetään liikkeelle tietojärjestelmälle määritellyistä palveluista Palvelun toteutuksen tarvitaan eri tyyppisiä olioita käyttöliittymäoliot (ikkunat, valikot, napit, ) hoitavat yhteyttä käyttäjän ja sisältöolioiden välillä sisältöoliot toteuttavat reaalimaailman simulointimallin

Palvelujen määrittely Käyttöliittymäoliot Sisältöoliot

Palvelujen määrittely Sisältöolioiden ja käyttöliittymäolioiden väliseen kytkentään on monenlaisia ratkaisumalleja Yleisperiaatteena voisi pitää sitä, että sisältöolioiden pitäisi tarjota käyttöliittymästä riippumattomia palveluja sisällön käsittelyyn. Tällöin voidaan helposti rakentaa erilaisia käyttöliittymiä samaa tehtävää varten käyttöliittymän muuttaminen ei vaikuta sisältöluokkiin

Palvelujen määrittely Oliot tarjoavat ensisijaisesti oman tietosisältöönsä liittyviä palveluja. Jos oliosta on yhteys muihin olioihin, olio voi käyttää näitä apuna omissa palveluissaan ja koota yhteen tuntemiensa olioiden palveluiden tulokset Luokalle voidaan antaa vastuu jostakin asiakokonaisuudesta ja palvelut määräytyvät tämän vastuun puitteissa.

Palvelujen määrittely Palvelua määriteltäessä, on selvitettävä pystyykö luokan olio hoitamaan sen itsenäisesti ellei pysty, millaista yhteistyötä muiden olioiden kanssa tarvitaan. Kumpikin selvityksistä voi tuottaa uusia attribuutteja tai palveluja tarkasteltavalle luokalle tai avustaville luokille

Järjestelmän palvelujen määrittely Tietojärjestelmät tarjoavat tietoa sekä käyttäjille että epäsuorasti muille tahoille. Tahoja, jotka ovat järjestelmän ulkopuolella, mutta kuitenkin palvelujen kautta kytkeytyneitä järjestelmään kutsutaan järjestelmän sidosryhmiksi Tällainen taho voi toimia tiedon tuottajana järjestelmään tiedon hyväksikäyttäjänä

Järjestelmän palvelujen määrittely Järjestelmän sidosryhmät ovat tyypillisesti järjestelmän tukeman liiketoiminnan osan osapuolia organisaatioyksiköt, henkilöt, henkilöroolit tai ulkoiset järjestelmät, jotka joko toimittavat syötteitä järjestelmään tai saavat siltä tulosteita. Sidosryhmien yhteyttä järjestelmään voidaan karkeimmalla tasolla kuvata sidosryhmäkaaviolla (context diagram) Sidosryhmäkaavio rajaa järjestelmän suhteessa ympäristöönsä Sidosryhmäkaavio ei ole UML-tekniikka, vaan vanhempi

Järjestelmän palvelujen määrittely Sidosryhmäkaavio näyttää sidosryhmien lisäksi järjestelmän tärkeimmät yhteydet sidosryhmiin sidosryhmille suunnatut tai niiltä saatavat keskeiset palvelut tai palvelukokonaisuudet Tarkastellaan esimerkkiä, jossa lipunvälitys-tietojärjestelmä rakennetaan välittäjäksii asiakkaan, elokuvayhtiökohtaisten varausjärjestelmien ja pankkijärjestelmien välille

Järjestelmän palvelujen määrittely tiedustelu varaus LIPUNVÄLITYS Asiakas kysely varaus laskutus maksuilmoitus Varausjärjestelmät Pankkijärjestelmät

inquiry reservation Ticket system Customer inquiry reservation billing Payment notification Seats reservation Bank system

Järjestelmän palvelujen määrittely Sidosryhmän järjestelmään yhdistävät nuolet kuvaavat palvelukokonaisuuksia Sidosryhmiä kuvaavat symbolit vapaamuotoisia Nuolen kärki osoittaa palvelun tarjoajaan varausjärjestelmät tarjoavat lipunvälitysjärjestelmälle varaus- ja kysely-palvelut, pankkijärjestelmät tarjoavat laskutus- ja maksuilmoituspalvelut Huom. Ihmiset eivät koskaan tarjoa järjestelmälle palveluita vaan järjestelmä ihmisille. Täten ihmisiä järjestelmään yhdistävät nuolet osoittavat aina järjestelmään.

Järjestelmän palvelujen määrittely Kaavio edellyttää aina tuekseen sanallisen kuvauksen järjestelmän tehtävä selitys järjestelmän ja sidosryhmien välisistä yhteyksistä aluksi riittää lyhyt lauseen mittainen kuvaus tarkentuu myöhemmin määrittelyn kuluessa täsmälliseksi järjestelmän palvelujen kuvaukseksi

Käyttötapausmalli Tietojärjestelmä tarjoaa käyttäjilleen palveluita, jotka perustuvat järjestelmän tietosisältöön Käyttötapausmalli (use case model) on viime aikoina suosioon tullut tapa järjestelmän palvelujen määrittelyyn. (Jacobson: Object-Oriented Software Engineering: A use case driven approach, Addison-Wesley,1992) UML tarjoaa kuvaustekniikan käyttötapausmallin esittämiseen (tekniikka on kuitenkin aika turha, oleellista on käyttötapausmallin ajatus järjestelmän palvelujen määrittelystä)

Käyttötapausmalli Käyttötapauksella (use case) tarkoitetaan järjestelmän avulla suoritettavaa tavoitteellista tehtäväkokonaisuutta. Termiä käyttötapaus käytetään yleisesti sekä luokkatason käsitteenä että ilmentymätason käsitteenä. Jatkossa käyttämme mahdollisissa epäselvissä tilanteissa luokkatasolla termiä käyttötapausluokka ja ilmentymätasolla termiä käyttötapausilmentymä.

Käyttötapausluokka: Käyttötapausmalli Paikan varaaminen elokuvanäytökseen Käyttötapausilmentymä: Kalle Kenkkunen varaa paikan 308 Tennispalatsi 12:n näytökseen 20.11.1999 klo 21.

Käyttötapausmalli Käyttötapauksella on käyttäjä joka käyttötapauksessa toimii vuorovaikutteisesti järjestelmän kanssa toteuttaakseen tavoitteensa antaa syötteitä, saa palautetta usein käyttäjä on ihminen, mutta se voi olla myös ulkoinen järjestelmä Käyttötapaukseen liittyy aina tavoite = asia, jonka käyttäjä haluaa saada aikaan käyttötapauksen avulla

Käyttötapausmalli TKTL:n ilmoittautumisjärjestelmään liittyviä käyttötapauksia ovat, esim: kurssille ilmoittautuminen <-- opiskelija NN ilmoittautuu JSS/s99 kurssin harjoitusryhmään 3 ilmoittaumisen peruminen <-- opiskelija NN peruu ilmoittautumisensa JSS/s99 kurssin harjoitusryhmään 3 kurssille ilmoittautuneiden määrän selvitys <-- opettaja HL selvittää kurssille JSS/s99 ilmoittautuneiden opiskelijoiden lukumäärän

Käyttötapausmalli Lipunvälitysjärjestelmän käyttötapauksia: elokuvan tietyllä aikajaksolla olevien näytösaikojen ja paikkojen selvitys <-- asiakas NN haluaa saada selville tänään välillä 17-22 alkavien Star Wars Episode 1 näytösten ajat ja paikat Helsingissä lipun varaus <-- asiakas Kalle Kenkkunen varaa paikan 308 Tennispalatsi 12:n näytökseen 20.11.1999 klo 21.

Käyttötapausmalli Käyttötapauksia voidaan kuvata monelta eri kannalta sekä luokka että ilmentymätasolla Käyttötapauksen sisällön kuvauksessa kuvataan käyttäjän kannalta mitä käyttötapauksen avulla halutaan saada aikaan Mitä syötteitä annetaan ja mitä tuloksia saadaan Mitä sääntöjä käyttötapaukseen liittyy Mitä vaatimukset, määriä tapaukseen liittyy Kuvauksessa ei pidä ottaa kantaa mihinkään käyttöliittymäteknisiin asioihin. Se ei saisi rajoittaa toteutusmahdollisuuksia.

Käyttötapausmalli Puhtaasti sisällöllistä kuvausta voi olla vaikea muotoilla. Ajatus toimintatavasta voi ainakin piilevänä näkyä kuvauksessa. Käyttötapauksesta pitäisi määrittelyssä kuvata sen tyypillinen kulku, kuitenkin siten ettei se rajoita aiheettomasti käyttöliittymää. Käyttötapausten ei tulisi olla liian pieniä tai yksityiskohtaisia.

Käyttötapausmalli kurssille ilmoittautuminen <-- opiskelija Opiskelija antaa tunnistustietonsa ja valitsee kurssin sekä kurssin harjoitusryhmän. Opiskelija saa tiedon ilmoittautumisen onnistumisesta. Opiskelija ei voi ilmoittautua täynnä olevaan ryhmään Opiskelija ei voi ilmoittautua, jos hänelle on kirjattu osallistumiseste. 2 ruuhkahuippua vuodessa, n 1400 ilmoittautumista tunnissa, muulloin vähän

Käyttötapausmalli elokuvan tietyllä aikajaksolla olevien näytösaikojen ja paikkojen selvitys <-- asiakas Asiakas valitsee elokuvan sekä aikavälin alku- ja loppupäivät ja aika rajat näytöksen alkamisajalle. Lisäksi asiakas voi määritellä näytetäänkö tulos teattereittain vaiko alkamisaikojen perusteella järjestettynä. Tuloksena asiakas saa luettelon näytöksistä määrittelemässään järjestyksessä

Käyttötapausmalli Paikkojen varaus näytökseen Vain rekisteröitynyt asiakas voi tehdä varauksia Asiakas valitsee näytöksen ja saa tiedot vapaina olevista paikoista. Hän valitsee näistä mieleisensä (yhden tai useampia) ja antaa tunnistetietonsa. Järjestelmä vahvistaa varauksen antamalla asiakkaalle varausnumeron sekä tuottamalla laskun, jonka asiakas maksaa pankkijärjestelmänsä avulla. Lasku jää odottamaan maksamista. Kun asiakas on maksanut laskun hän tulostaa itselleen liput.

Käyttötapausmalli Edellä esitetyt kuvaukset käyttötapauksista ovat luokkatason yleiskuvauksia, esim kaikkia paikkavarauksia kuvaava. Käyttötapausten havainnollistamiseksi voidaan (ja on yleensä syytäkin) käyttää ilmentymätason esimerkkitapausten kuvauksia. Ville valitsee elokuvan X-fileet III naytöksen teatterissa Kinopalatsi 6 30.11.1999 klo 19. Vapaista paikoista hän valitsee paikat 6/8 ja 6/9. Tunnustietona hän antaa rekisteröintitunnuksensa. Hän saa varausnumeron 1234567-8 ja laskun, jonka hän maksaa Merita- Solo maksupalvelun kautta. Liput hän tulostaa omalla kirjoittimellaan.

Käyttötapausmalli Käyttötapauksilla kuvataan järjestelmän toiminnallisia vaatimuksia. Käyttötapaus on looginen kokonaisuus, jolla on lähtökohta merkityksen omaava lopputulos

Käyttötapausmalli Käyttötapauksen kuvauksessa esitetään käyttötapauksen perussisältö Käyttötapaukset eivät välttämättä toteudu aina perussisältönsä mukaisesti vaan esiintyy: virhetilanteita, poikkeuksia, vaihtoehtoisia tai valinnaisia tapoja toimia Nämä kuvataan erilisinä laajennoksina tai täydennyksinä

Käyttötapausmalli Paikkojen varaus näytökseen - esimerkkejä poikkeuksista ja virhetilanteista: Valittuun näytökseen ei ole haluttua määrää vapaita paikkoja Asiakas ei ole rekisteröitynyt Asiakas on unohtanut tunnistetietonsa Asiakkaalla ei ole käyttöoikeutta pankkitietojärjestelmään Asiakkaalla ei ole kirjoitinta Yhteys järjestelmään katkeaa (eri vaiheissa)

Käyttötapausmalli Laajoissa järjestelmissä voidaan lähteä liikkeelle käyttäjien työtehtäviin perustuvista käyttötapauksista. Käyttötapauksia analysoitaessa löydetään yhteisiä osia, jotka voidaan erottaa omiksi käyttötapauksiksi. virhe- ja poikkeustilanteita vaihtoehtoisia sisältöjä

Käyttötapausmalli Käyttötapauksen perussisältöä muuttavat tehtävät voidaan liittää käyttötapaukseen sen laajennoksina (extent). Esim: Henkilötietojen antaminen voisi olla ilmoittautumisen laajennos, joka suoritetaan siinä tapauksessa, että opiskelija ei ole aiemmin antanut henkilötietojaan.

Käyttötapausmalli Paikkojen varauksen viimeisellä osatehtävällä Lipun toimitus voisi olla kaksi vaihtoehtoa tulostus asiakkaan kirjoittimella toimitus teatterin lippupisteestä tätä käytettäisiin, jos tulostus asiakkaan kirjoittimella ei jostain syystä onnistu Toimitus teatterin lippupisteestä: Lippu kirjataan noudettavaksi teatterin lippupisteestä. Asiakkaan on lippua noutaessaan annettava varausnumeronsa. Kun asiakas on noutanut lipun se kirjataan noudetuksi.

Käyttötapausmalli Toimitus asiakkaan kirjoittimella: Järjestelmä selvittää, tarvittessa asiakkaalta kysymällä, millainen kirjoitin asiakkaalla on. Jos kirjoitin on tulostukseen soveltuva muodostetaan lippujen kuvat ja toimitetaan ne asiakkaan työasemaan. Asiakas tulostaa liput ja kuittaa tulostuksen onnistuneeksi. Poikkeuksia (näissä tilanteissa käytetään lippupisteestä toimitusta): kirjoitin ei ole tulostukseen soveltuva Tulostus ei onnistu

Käyttötapausmalli paikkojen varaus extends toimitus lippupisteestä uses extends toimitus asiakkaan kirjoittimella extends epäonnistunut toimitus

Käyttötapausmalli Käyttötapausmalli (use case model) on kattava, täydellinen luokkatason kuvaus järjestelmän käytöstä (palveluista) kaikki käyttötapaukset mukana käyttötapausten väliset yhteydet selvitetty Käyttötapausmalli esitetään kaavioina ja sanallisina kuvauksena

Käyttötapausmalli UML-tarjoaa kaaviotekniikan käyttötapausmallin esittämiseen Sanalliset kuvaukset ovat kuitenkin oleellisempia käyttötapaus käyttäjä (actor)

Käyttötapausmalli use case a käyttötapaus a hyödyntää b:tä Viivojen pitäisi olla katkoviivoja uses c laajentaa b:tä use case b extends use case c

Käyttötapausmalli student register_on_course establish_new_course cancel_registration study_ administrator change_student_data study_exam_results determine_tasks determine_grades register_task-points teacher lecturer

Käyttötapausmalli Edellä on tarkasteltu käyttötapauksen sisällön määrittelyä Käyttötapauksen toteutuksen suunnittelussa perustana on käyttöliittymän yleissuunnitelma suunnitellaan yksityiskohtaisesti käyttötapauksen läpivienti käyttöliittymän avulla määritellään käyttöliittymäolioille käyttötapauksen tarvitsemia palveluita

Käyttötapaukset ja tietosisältö Käyttötapaukset määrittelevät toiminnalliset vaatimukset järjestelmälle, mutta ne asettavat vaatimuksia myös järjestelmän tietosisällölle, koska toiminnot edellyttävät tietojen olemassaoloa Eräs tapa järjestelmän sisältöluokkien suunnitteluun onkin tehdä suunnittelu käyttötapauksittain ja sitten yhdistää käyttötapauskohtaiset mallit

Käyttötapaukset ja tietosisältö Lähtökohtana käyttötapaukset Mitä tietoja ja tietokokonaisuuksia tarvitaan käyttötapauksen hoitamiseksi? Jokaisen käyttötapauksen perusteella laaditaan käyttötapauskohtainen näkymä tarvittavista tiedoista, eli pelkästään käyttötapauksen tarpeet huomioon ottava luokkakaavio Näkymät yhdistetään sisällön kokonaismallin aikaansaamiseksi

Käyttötapaukset ja tietosisältö KT-1 KT-i KT-n Näkymä-1 Näkymä-i Näkymä-n integrointi Koottu malli

Käyttötapaukset ja tietosisältö Käyttötapauksittain sisältömallia muodostettaessa ainakin periaatteessa saadaan mallliin mukaan kaikki käyttötapauksen tarvitsemat tiedot Käyttötapausmallin ja tietosisältömallin yhteensopivuuden varmistamiseksi voi käyttää riippuvuusmatriisia

Käyttötapaukset ja tietosisältö Riippuvuusmatriiseja: Luokat ja yhteydet / käyttötapaukset Luo, muuttaa, poistaa, käyttää Matriisit voidaan esittää myös attribuuttitasolla, jolloin näkyisi attribuuttien käsittely. Tällöin matriisit on kuitenkin syytä pilkkoa luokkakohtaisiksi

Käyttötapaukset ja tietosisältö Käyttötapaukset Uusi artikkeli Uusi artikkeliversio Tiedustelu artikkelin tilasta Lausunnonantajan valinta Lausunnon saapuminen Muistutus lausunnosta Puuttumaan jäänyt lausunto Olioluokat Article L M K K K K K K M M M M M M M K K K K K Article version L L K M K K K M M M M M K Person X X X K K K K K K K K X K Reference K L M M M M K Journal L K K K K= Käyttää, L = Luo, M= Muuttaa, P= Poistaa, X=Luo tai muuttaa Valituksen käsittely Julkaisupäätöksen kirjaus Palautus korjattavaksi Julkaistavaksi hyväksymine Hylkääminen Viimeistellyn saapuminen Oikovedoksen lähettäminen Korjausten vastaanotto Eripainosten tilaus Henkilötietojen rekisteröinti Sisällysluettelo Vuosikertatiedot www-sivut Raportit

Käyttötapaukset ja tietosisältö Jokaiselle luokalle ja yhteydelle täytyisi löytyä käyttötapaus, jolla voidaan luoda luokan ilmentymiä ja kytkeä olioita ko. yhteyteen Jokaiselle luokalle ja yhteydelle täytyisi löytyä käyttötapaus, joka hyödyntää luokan tietoja ja yhteyksiä Jos ilmentymät eivät ole ikuisia pitää löytyä käyttötapaus ilmentymien hävitykseen Jos ilmentymän tietosisältö ei ole muuttumaton pitää löytyä käyttötapaus, jolla tietosisältöä voidaan muuttaa

Käyttötapaukset ja tietosisältö Jos osapuoli voidaan irroittaa yhteydestä täytyy tähän tarkoitukseen löytyä käyttötapaus Toisaalta jokaisen käyttötapauksen täytyy jollain tavoin liittyä sisältöluokkiin.