VAATIMUSMÄÄRITTELY. PROJEKTITYÖ Tik Wclique

Samankaltaiset tiedostot
VAATIMUSMÄÄRITTELY. PROJEKTITYÖ Tik Wclique

TOIMINNALLINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique

TOIMINNALLINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique

TOIMINNALLINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique

- painottamattoman graafin solmujen järjestäminen. - painotetun graafin solmujen järjestäminen

TEKNINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

TIEDONKULKU. PROJEKTITYÖ Tik Wclique

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

6.4. Järjestyssuhteet

T Testiraportti - integraatiotestaus

SÄHKE-hanke. Abstrakti mallintaminen Tietomallin (graafi) lukuohje

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Graafin 3-värittyvyyden tutkinta T Graafiteoria, projektityö (eksakti algoritmi), kevät 2005

TEKNINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique

TEKNINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique

Laskennan teoria (kevät 2006) Harjoitus 3, ratkaisuja

JULKISTEN VERKKOPALVELUJEN LAATUKRITEERISTÖN KONSEPTI

Tietorakenteet ja algoritmit - syksy

Kysymys: Voidaanko graafi piirtää tasoon niin, että sen viivat eivät risteä muualla kuin pisteiden kohdalla?

10. Painotetut graafit

8.5. Järjestyssuhteet 1 / 19

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

UCOT-Sovellusprojekti. Asennusohje

A TIETORAKENTEET JA ALGORITMIT

8. Näppäimistöltä lukeminen 8.1

Algoritmit 1. Luento 1 Ti Timo Männikkö

T Testiraportti - järjestelmätestaus

Tietotekniikan valintakoe

Lisää pysähtymisaiheisia ongelmia

8. Näppäimistöltä lukeminen 8.1

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu KÄYTTÖOHJE. LiKe Liiketoiminnan kehityksen tukiprojekti

WCLIQUE. Ohjelmistoprojekti. Loppuraportti

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

Se mistä tilasta aloitetaan, merkitään tyhjästä tulevalla nuolella. Yllä olevassa esimerkissä aloitustila on A.

Kuopio Testausraportti Asiakkaat-osakokonaisuus

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Tietorakenteet ja algoritmit

Tietueet. Tietueiden määrittely

Johdatus graafiteoriaan

Rinnakkaistietokoneet luento S

Königsbergin sillat. Königsberg 1700-luvulla. Leonhard Euler ( )

Osoitin ja viittaus C++:ssa

Algoritmit 2. Luento 13 Ti Timo Männikkö

Harjoitus 3 ( )

10. Painotetut graafit

Vaatimusmäärittely julkaisujen tuelle Theseuksessa

TAMPEREEN TEKNILLINEN YLIOPISTO

Toinen harjoitustyö. ASCII-grafiikkaa 2017

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

Epädeterministisen Turingin koneen N laskentaa syötteellä x on usein hyödyllistä ajatella laskentapuuna

Määrittelyvaihe. Projektinhallinta

C-kielessä taulukko on joukko peräkkäisiä muistipaikkoja, jotka kaikki pystyvät tallettamaan samaa tyyppiä olevaa tietoa.

Johdatus graafiteoriaan

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Toinen harjoitustyö. ASCII-grafiikkaa

Kuva Suomen päätieverkko 1 Moottoritiet on merkitty karttaan vihreällä, muut valtatiet punaisella ja kantatiet keltaisella värillä.

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

Käyttäjien tunnistaminen ja käyttöoikeuksien hallinta hajautetussa ympäristössä

Ohjelmoinnin perusteet Y Python

WCLIQUE Ohjelmistoprojekti. Projektisuunnitelma

Loppukurssin järjestelyt C:n edistyneet piirteet

Harjoitus 3 ( )

Ylläpitodokumentti. Boa Open Access. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Loppukurssin järjestelyt

A4.1 Projektityö, 5 ov.

PARITUS KAKSIJAKOISESSA

Itsestabilointi: perusmääritelmiä ja klassisia tuloksia

TIE448 Kääntäjätekniikka, syksy Antti-Juhani Kaijanaho. 17. marraskuuta 2009

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

Käyttöohje. Ohje toimittajalle excel-tuoteluettelon toimittamiseen. Valtiokonttori. Versio 1.2. Basware Buyer Catman

Tarjouspalvelu.fi. Käyttöohjeet. Osallistu tarjouskilpailuihin tehokkaasti ja turvallisesti. Tarjouspalvelu.fi -toimittajaportaali

Liikkuva-sovellusprojekti

811312A Tietorakenteet ja algoritmit V Verkkojen algoritmeja Osa 2 : Kruskalin ja Dijkstran algoritmit

Turingin koneen laajennuksia

Ongelma 1: Ovatko kaikki tehtävät/ongelmat deterministisiä?

KYMENLAAKSON AMMATTIKORKEAKOULU Tietotekniikan koulutusohjelma / Tietoverkkotekniikka. Joni Korjala APACHE WWW-PALVELIN Seminaarityö 2012

811120P Diskreetit rakenteet

Äärellisten automaattien ja säännöllisten kielten ekvivalenssi

Maventa Connector Käyttöohje

Liikkuva-sovellusprojekti

Salasanojen turvallinen tallentaminen KeePass ohjelmalla

ELM GROUP 04. Teemu Laakso Henrik Talarmo

ICS-C2000 Tietojenkäsittelyteoria Kevät 2016

Tuomiorekisterin ratkaisuhaun kehittäminen

TEKNINEN OHJE VAIHTOTASETIETOJEN TIEDOSTORAPORTOINTIIN EXCEL-TYÖKIRJALLA

Kurssin tavoitteista uennot. 4.1 Projektityö, 5 ov. Esitietovaatimukset

Monikielinen verkkokauppa

Esimerkkejä polynomisista ja ei-polynomisista ongelmista

Testaussuunnitelma PULSU. Syksy 2008 Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

WINDOWS 7 ASETUKSET FUTURSOFT OHJELMIEN KÄYTTÖÄ VARTEN

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

Tietorakenteet ja algoritmit

Lyhyt kertaus osoittimista

S09 04 Kohteiden tunnistaminen 3D datasta

Teknillinen korkeakoulu T Tietojenkäsittelyopin ohjelmatyö. Testitapaukset - Siirtoprotokolla

Joonas Ruotsalainen GIT PIKAOPAS. Tutkielma 2011

Transkriptio:

VAATIMUSMÄÄRITTELY PROJEKTITYÖ Tik-76.115

SISÄLLYSLUETTELO Sisällysluettelo... 2 Versiohistoria... 3 1. JOHDANTO... 4 1.1 Algoritmi... 4 1.2 Graafi... 4 1.3 Nauty... 5 1.4 Mermaid... 5 2. YLEISKUVAUS... 6 3. TOIMINNOT ja VAATIMUKSET... 7 3.1 Painottamattomien graafien vaatimukset... 7 3.1.1 Painottamattoman maksimiklikin koko... 7 3.1.2 Yhden maksimiklikin laskeminen... 7 3.1.3 Kaikkien maksimiklikkien laskeminen... 7 3.1.4 Yhden klikin laskeminen kokoa S... 8 3.1.5 Kaikkien klikkien laskeminen kokoa S... 8 3.1.6 Yhden klikin laskeminen vähintään kokoa S... 8 3.1.7 Kaikkien klikkien laskeminen vähintään kokoa S... 8 3.1.8 Verticeitten järjestäminen... 8 3.1.9 Ensisijaiset "olisi hienoa" -ominaisuudet... 8 3.1.9.1 Klikkien laskenta annetulla vertexien määrällä... 8 3.1.9.2 ja Windows... 9 3.2 Painotettujen graafien vaatimukset... 9 3.2.1 Painotetun maksimiklikin koko... 9 3.2.2 Yhden maksimiklikin laskeminen... 9 3.2.3 Kaikkien maksimiklikkien laskeminen... 9 3.2.4 Yhden klikin laskeminen kokoa S... 9 3.2.5 Kaikkien klikkien laskeminen kokoa S... 9 3.2.6 Yhden klikin laskeminen vähintään kokoa S... 9 3.2.7 Kaikkien klikkien laskeminen vähintään kokoa S... 10 3.2.8 Eri syöteformaattien lukeminen... 10 3.2.9 Vertexien järjestely... 10 4. MUUT OMINAISUUDET... 10 4.1 Tehokkuus... 10 4.2 Kieli ja kieliasu... 10 4.3 Siirrettävyys... 10 Liite: Use Case kuva... 11

VERSIOHISTORIA Versio Päivämäärä Laatija Kuvaus 1.0-2 22.10.2000 JDu Päivitetty asia virheet 1.1-0 21.11.2000 JDu Lisätty Usecas osuus liitteeseen, korjattu vaatimuksien otsikointia sekä lisätty sivuille alaotsikot. 1.1-2 12.12.00 Jdu Pieniä korjauksia

VAATIMUSMÄÄRITTELY 4 (11) 1. JOHDANTO Tässä dokumentissa kuvataan ohjelman asiakkaan vaatimuksia. Dokumentti koostuu johdannosta, jonka alaotsikoissa on kerrottu termeistä, jotka saattavat olla ennestään vieraita. Yeiskuvauksessa on mainittu toteutustyökalut, liittymät muihin ohjelmiin ja käyttöympäristön. Toiminnot luvussa kuvataan järjestelmältä vaadittavat ominaisuudet yleisellä tasolla. Neljännessä luvussa mainitaan muista ohjelman ominaisuuksista kuten suorituskykytoiveista ja käytettävyydestä. Liitteenä on Mermaid -ohjelmalla muodostettu UML -kuvaus ohjelman vaatimuksista. Se että käytetäänkö UML -kuvausta toiminnallisessa määrittelyssä on epävarmaa, koska vaatimukset ovat tyypiltään sellaisia, ettei UML anna toiminnalliseen määrittelyyn suurta informatiivista hyötyä. Tavoitteena -ohjelmassa on muodostaa algoritmille toimiva ympäristö, jolloin algoritmin käyttö helpottuu ja algoritmille voidaan luoda uusia käyttötapoja. Ohjelmasta on olemassa jo alustava prototyyppi, jossa on jo jotain ominaisuuksia painavimman klikin löytämiseksi. Sen voi ladata osoitteesta: http://www.tcs.hut.fi/ ~ pat/wclique.html 1.1 Algoritmi Algoritmi jonka ympärille ohjelma rakennetaan on julkinen ja algoritmin toimintaa on kuvattu Internetissä seuraavissa dokumenteissa: "A Fast Algorithm for the Maximum Clique Problem" http://www.tcs.hut.fi/ ~ pat/paper1.ps "A New Algorithm for the Maximum-Weight Clique Problem" http://www.tcs.hut.fi/ ~ pat/paper2.ps Algoritmilla voidaan ratkaista olemassa olevasta graafista asioita joista ollaan kiinnostuneita. Luvussa 1.2 on lyhyt selvitys siitä mikä on graafi. Algoritmi on muodostettu pseudokielellä ja yksi projektin kohteista on muuttaa se C -kielellä toimivaksi. 1.2 Graafi Useissa yhteyksissä tarkastellaan joukkoa somuja tai tiloja, joista joko on tai ei ole mahdollista siirtyä välittömästi toinen toisiinsa. Tyypillisiä esimerkkejä tällaisista ovat kartta, johon on merkitty kaupunkeja, sekä näiden väliset suorat liikenneyhteydet, tietokoneohjelman kulkua kuvaava vuokaavio ja sukupuut. Graafi, eli verkko G = ( V, E ) muodostuu äärellisistä joukoista V ja E, joista V on ns. solmujen joukko (solmuista

VAATIMUSMÄÄRITTELY 5 (11) käytetään myös joissain yhteyksissä nimityksiä kärki tai piste), ja E on sivujen joukko (käytössä myös nimitykset kaari ja haara). Jotta edellinen lause hiukan selkenisi niin Kuva 1 on esitetty kaksi graafia piirroksena, b- graafi on painotettu (weighted). Klikki tarkoittaa yhteyttä usean solmun välillä. Graafissa b esiintyy myös klikki, joka on klikki yhden somun välillä. Graafissa a, maksimiklikki on kolme (ylärivin solmut ja oikea alakulma) ja graafissa b se on viisi (sisältää siis vain yhden siirtymän, somujen painoarvojen ollessa 4 ja 1). Mahdollinen suuntaus esitetään nuolien avulla (siirtymisen suunta sallittu/ei sallittu). ohjelma ei ota kantaa, kuten Nauty ohjelma, siihen onko graafi suunnattu vai suuntaamaton. 4 2 1 A-graafi B-graafi Kuva 1. Kaksi erillistä graafia havainnollistettuna piirroksen avulla. Vertex on huippupiste (huippusolmu) josta laskenta aloitetaan (yksi per klikki) ja Vertice on solmu yleensä, joita voi olla yhdestä useaan. 1.3 Nauty Nauty on C kielellä tehty ohjelma jolla voidaan muodostaa automorfisia ryhmiä sekä graafeille että suunnatuille graafeille. Se myös pystyy muodostamaan kanonisia nimiöintejä. Nauty on vapaasti tieteellisissä tarkoituksissa käytettävä ohjelma jonka ohjelmakoodi on julkinen. Nauty ohjelma voidaan ladata osoitteesta: http://cs.anu.edu.au:80/people/bdm/nauty/ 1.4 Mermaid Mermaid on Nokialla käytetty ohjelma jolla voidaan luoda UML kuvaus ohjelmalle (ks. iitteenä oleva Mermaidilla tehty UML kuvaus vaatimuksista). Ideana on että esim. yhtä vaatimus soikiota klikattaessa, päästään tarkempiin määrittelyihin, jotka kuuluisivat toiminnalliseen määrittelyyn.

VAATIMUSMÄÄRITTELY 6 (11) 2. YLEISKUVAUS Projektityön aihe on ohjelma, josta tulee tieteellisessä käytössä vapaasti käytettävä, eli lähdekoodi on julkinen. Ohjelmatyö tehdään Patric Östergårdille, jonka toimittamassa PostScript documentissa:, Patric Östergård, September 28, 2000 on määritelty toivomuksia ohjelmasta. Projektityön koodi tehdään Ansi-C muodossa jolloin se on käyttöjärjestelmästä riippumaton. Ohjelmaa käytetään pääasiassa Unix/Linux käyttöjärjestelmässä jolloin pääosin ohjelman testaus tehdään Nokian tietokoneissa, joissa on Linux käyttöjärjestelmä. Tarvittaessa TKK:n Tietojenkäsittelyteorianlaboratorio on myös käytettävissä. Lopuksi pyritään varmistamaan ohjelman toiminta myös Windows pohjaisissa käyttöjärjestelmissä. Syöte jota en annetaan tulee olla ascii- tai binäärimuotoista, komentoriviparametrit ovat asciita. Tuloste jota sta saadaan, on myös asciimuotoista, jolloin ohjelman käyttö muista ohjelmista on helppoa. Syötteen ja tulosteen tarkempaa määrittelyä ei olla vielä päätetty, ja se tullaan kuvaamaan myöhemmin toiminnallisessa määrittelyssä. Yksi esimerkki on esitetty Kuva 2, joka kuvaa kuinka n prototyyppiin tietoa syötetään. 4 5 3 3 1 2 3 2 2 0 2 1 3 0 1 3 4 2 0 2 Tässä graafissa on 4 vertexiä ja 5 edgeä (solmua). Kuva 2. n prototyypin graafin syötteen syöttötapa. Projektityön päätarkoitus ei ole kehittää itse algoritmia. Jos kuitenkin algoritmi tarvitsee pientä "viilaamista", algoritmin muodostamisessa pseudokielestä syntyy ongelmia tai algoritmi tarvitsee jatkokehitystä, niin yhteyshenkilönä asiakkaan puolelta toimii Harri Haanpää.

VAATIMUSMÄÄRITTELY 7 (11) 3. TOIMINNOT JA VAATIMUKSET Ensisijainen päämäärä tässä projektissa on muodostaa toimiva käyttöympäristö algoritmille, jota voidaan kutsua toisesta C kielellä tehdystä ohjelmasta komennolla. Ohjelman tulee toimia Unix/Linux käyttöjärjestelmässä yhdessä Nauty ohjelman kanssa ilman ongelmia. Alla on esimerkki C kielen rutiini, eli kuinka ohjelmaa voidaan kutsua. #include "wclique.h"... main() {... /* define graph */... wclique(...); /* process results */... } n tulee ainakin sisältää ensisijaiset vaatimukset, jotka käsittelevät painottamattomia ja painotettuja graafeja (kappaleet 3.1.1-3.1.7 ja 3.2.1-3.2.7). Ensisijaiset vaatimukset käsitellään itse ohjelmassa funktiokutsuin. Toissijaisissa vaatimuksissa ohjelmaa tulisi voida kutsua kuten muitakin Unixin/Linuxin komentoja. Toissijaiset vaatimukset ovat toivottavia mutta eivät pakollisia. Kuvassa 1 on esitetty mitä tarkoitetaan painotetulla ja painottamattomalla graafilla. 3.1 Painottamattomien graafien vaatimukset 3.1.1 Painottamattoman maksimiklikin koko Haluttaessa tietää graafin ominaisuuksista maksimiklikin koko, ohjelman tulee laskea ja tulostaa se. tulostaa vastauksena solmujen määrän. 3.1.2 Yhden maksimiklikin laskeminen -ohjelman tulee laskea pyydettäessä yksi maksimiklikki, ja tulostaa sen solmupisteet. 3.1.3 Kaikkien maksimiklikkien laskeminen -ohjelman tulee laskea pyydettäessä kaikki maksimiklikit, ja tulostaa niiden solmupisteet.

VAATIMUSMÄÄRITTELY 8 (11) 3.1.4 Yhden klikin laskeminen kokoa S n tulee tulostaa yhden luokkaa S olevan klikin solmupisteet. 3.1.5 Kaikkien klikkien laskeminen kokoa S n tulee tulostaa kaikkien niiden klikkien solmupisteet, jotka ovat kooltaan luokkaa S. 3.1.6 Yhden klikin laskeminen vähintään kokoa S n tulee tulostaa somupisteet yhdestä klikistä joka on vähintään luokkaa S. 3.1.7 Kaikkien klikkien laskeminen vähintään kokoa S n tulee tulostaa kaikkien niiden klikkien solmupisteet, jotka ovat kooltaan vähintään luokkaa S. Kohdissa 3.1.1-3.1.7 mainituista kaikkien klikkien laskemisesta: Jos halutaan vain yksi tietynlainen klikki, ohjelma voi ja tulee palauttaa sen jossakin taulukossa. Jos pyydetään ohjelmaa hakemaan kaikki tiettyä tyyppiä olevat klikit, tälläinen lähestymistapa ei välttämättä ole mahdollinen (niita voi olla miljoonittain). Silloin ohjelma kutsuu jokaisen löydetyn klikin kohdalla funktion. Tämän funktion nimi, on wclique-rutiinin parameterina ja käyttäja luo itse kyseisen funktion. Vrt. qsort() lajittelurutiini C-kielessä missä funktio, joka vertaa kahta alkiota, on annettu parametrina. 3.1.8 Verticeitten järjestäminen n pitää pystyä muodostamaan erilaisia tapoja järjestää verticet (algoritmin parametrit). 3.1.9 Ensisijaiset "olisi hienoa" -ominaisuudet 3.1.9.1 Klikkien laskenta annetulla vertexien määrällä laskisi yksi tai kaikki klikit annetulla vertexien määrällä tietyin määrävälein, esimerkiksi: 0-1000: 2 vertexiä 1001-1939: 3 vertexiä Tämä vaatimus on ns. "Olisi hienoa" -ominaisuus ja ei kuulu ehdottomasti vaadittuihin ohjelman ominaisuuksiin.

VAATIMUSMÄÄRITTELY 9 (11) 3.1.9.2 ja Windows Wcliqen tulee toimia myös Windows -pohjaisessa käyttöjärjestelmässä. Tämä vaatimus on ns. "Olisi hienoa" -ominaisuus ja ei kuulu ehdottomasti vaadittuihin ohjelman ominaisuuksiin. 3.2 Painotettujen graafien vaatimukset 3.2.1 Painotetun maksimiklikin koko Haluttaessa tietää graafin ominaisuuksista maksimiklikin koko, ohjelman tulee laskea ja tulostaa se. Tulosteena palauttaa maksimiklikin painoarvon. 3.2.2 Yhden maksimiklikin laskeminen -ohjelman tulee laskea pyydettäessä yksi maksimiklikki, ja tulostaa sen solmupisteet. 3.2.3 Kaikkien maksimiklikkien laskeminen -ohjelman tulee laskea pyydettäessä kaikki maksimiklikit, ja tulostaa niiden solmupisteet. 3.2.4 Yhden klikin laskeminen kokoa S n tulee tulostaa yhden luokkaa S olevan klikin solmupisteet. 3.2.5 Kaikkien klikkien laskeminen kokoa S n tulee tulostaa kaikkien niiden klikkien solmupisteet, jotka ovat kooltaan luokkaa S. 3.2.6 Yhden klikin laskeminen vähintään kokoa S n tulee kertoa niiden kaikkien klikkien määrä, jotka ovat kooltaan luokkaa S tai enemmän.

VAATIMUSMÄÄRITTELY 10 (11) 3.2.7 Kaikkien klikkien laskeminen vähintään kokoa S n tulee tulostaa kaikkien niiden klikkien solmupisteet, jotka ovat kooltaan vähintään luokkaa S. 3.2.8 Eri syöteformaattien lukeminen Ohjelman tulee pystyä lukemaan dimacsin ascii ja binääri syöteformaatteja, jotta tietojen syöttäminen en olisi mahdollisimman helppoa ja tarvittaessa jopa käyttäjälle näkymätöntä. Protoversion lukeman syötteen ulkoasu on esitetty kuvassa 2. Tarkempaa tietoa syötteen sisällöstä saa osoitteesta: http://www.tcs.hut.fi/ ~ pat/wclique.html 3.2.9 Vertexien järjestely n pitää pystyä tukemaan erilaisia tapoja järjestää vertexit (algoritmin parametrit). 4. MUUT OMINAISUUDET 4.1 Tehokkuus Eräs vaatimus n ominaisuuksista oli, että ohjelma toimii vähintään yhtä nopeasti kuin Patric Östergårdin n protoversio. 4.2 Kieli ja kieliasu Ohjelmakoodin kommentointi tehdään englanniksi mahdollisimman selkeästi jotta jatkokehitys olisi helppoa ja koodi ymmärrettävää. Käyttökäsikirja toimitetaan englannin kielellä LaTex formaatissa. 4.3 Siirrettävyys Siirto voi tapahtua esimerkiksi kääntämällä Ansi C -ohjelmakoodi uudelleen halutussa koneessa.

VAATIMUSMÄÄRITTELY 11 (11) LIITE: USE CASE KUVA Use case kuva ohjelman vaatimuksista.