TOIMINNALLINEN MÄÄRITTELY. PROJEKTITYÖ Tik-76.115 Wclique



Samankaltaiset tiedostot
TOIMINNALLINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique

TOIMINNALLINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique

VAATIMUSMÄÄRITTELY. PROJEKTITYÖ Tik Wclique

VAATIMUSMÄÄRITTELY. PROJEKTITYÖ Tik Wclique

TOIMINNALLINEN MÄÄRITTELY MS

TIEDONKULKU. PROJEKTITYÖ Tik Wclique

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

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

TEKNINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

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

TEKNINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

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

WCLIQUE. Ohjelmistoprojekti. Testaussuunnitelma

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

TEKNINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique

811312A Tietorakenteet ja algoritmit I Johdanto

VAATIMUSMÄÄRITTELY Virtuaaliyhteisöjen muodostaminen Versio 1.0 (luonnos 4)

Algoritmit 1. Luento 1 Ti Timo Männikkö

TOIMINNALLINEN MÄÄRITTELY. PROJEKTITYÖ Tik Wclique

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Vaatimusmäärittely. Kymenlaakson partiopiirin jäsenrekisteri

Vaatimusmäärittely Ohjelma-ajanvälitys komponentti

Toiminnallinen määrittely. XLet esimerkkisovellus

VAATIMUSMÄÄRITTELY. Polku Versio 1.1. Projektiryhmä

Tietojärjestelmän osat

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

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

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

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

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

T Testiraportti - integraatiotestaus

VAATIMUSMÄÄRITTELY. Polku Versio 1.2. Projektiryhmä

TOIMINNALLINEN MÄÄRITTELY Virtuaaliyhteisöjen muodostaminen Versio 1.0

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

Tietorakenteet ja algoritmit - syksy

Dokumentin nimi LOGO:) Tampereen teknillinen yliopisto. Ryhmä XXX: Projektiryhmän nimi Projektin nimi

Tik Tietojenkäsittelyopin ohjelmatyö Tietotekniikan osasto Teknillinen korkeakoulu MÄÄRITTELY. LiKe Liiketoiminnan kehityksen tukiprojekti

T Testiraportti - järjestelmätestaus

GroupDesk Toiminnallinen määrittely

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

VAATIMUSMÄÄRITTELY Virtuaaliyhteisöjen muodostaminen Versio 1.2

Tietorakenteet ja algoritmit Johdanto Lauri Malmi / Ari Korhonen

Ohjelmisto on selainpohjaisen käyttöliittymän tarjoava tietokantajärjestelmä merikotkien seurantaan WWF:n Merikotka-työryhmän tarpeisiin.

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

EMVHost Online SUBJECT: EMVHOST ONLINE CLIENT - AUTOMAATTISIIRROT COMPANY: EMVHost Online Client sovelluksen käyttöohje AUTHOR: DATE:

TIE Tietorakenteet ja algoritmit 1. TIE Tietorakenteet ja algoritmit

Julkaiseminen verkossa

Valppaan asennus- ja käyttöohje

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

Ohjelmiston vaatimusmäärittely. tietoteknisen järjestelmän osat

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

6.4. Järjestyssuhteet

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

Vaatimusmäärittely Good Minton Sulkapalloliiton kilpailutoiminnan rekisteriohjelma

EMCS-järjestelmän sanomarajapinnan toiminnallinen kuvaus asiakkaille Meeri Nieminen

Sisällys. 12. Näppäimistöltä lukeminen. Yleistä. Yleistä

UML- mallinnus: Tilakaavio

Ohjelmistojen suunnittelu

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta Toteuta Pythonilla seuraava ohjelma:

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Simulaattorin asennus- ja käyttöohje

UCOT-Sovellusprojekti. Asennusohje

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Datatähti 2019 loppu

SQLite selvitysraportti. Juha Veijonen, Ari Laukkanen, Matti Eronen. Maaliskuu 2010

10. Painotetut graafit

Hieman linkkejä: lyhyt ohje komentoriviohjelmointiin.

Algoritmit 1. Luento 2 Ke Timo Männikkö

12. Näppäimistöltä lukeminen 12.1

Harjoitus 3 ( )

Harjoitus 3 (viikko 39)

Suvi Junes/Pauliina Munter Tietohallinto/Opetusteknologiapalvelut 2014

Sähköinen ajopäiväkirja, versio 2

Suunnitteluvaihe prosessissa

CVS. Kätevä väline usein päivitettävien tiedostojen, kuten lähdekoodin, hallitsemiseen

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

WCLIQUE. Ohjelmistoprojekti. Loppuraportti

Algoritmit 2. Luento 13 Ti Timo Männikkö

T Syksy 2003 Logiikka tietotekniikassa: perusteet Laskuharjoitus 8 (opetusmoniste, kappaleet )

4. Lausekielinen ohjelmointi 4.1

SUOMEN KUNTALIITTO RY

L models. Tekninen määrittely. Ryhmä Rajoitteiset

PATA WEB KÄYTTÖLIITTYMISTÄ

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

Visual Case 2. Miika Kasnio (C9767)

LoCCaM. LoCCaM Cam laitteiston ohjaaminen. Dimag Ky dimag.fi

Toiminnallinen määrittely versio 1.2

S11-04 Kompaktikamerat stereokamerajärjestelmässä. Projektisuunnitelma

Kieliversiointityökalu Java-ohjelmistoon. Ohje

Määrittelyvaihe. Projektinhallinta

Ylläpito-ohje. Matematiikan oppifoorumi. Carl Johansson Jukka Kariola Outi Marttila Helena Venäläinen Sampsa Virtanen. Ohjaaja.

Verkon värittämistä hajautetuilla algoritmeilla

ohjelman arkkitehtuurista.

Ohjelmiston testaus ja laatu. Testausmenetelmiä

Transkriptio:

TOIMINNALLINEN MÄÄRITTELY PROJEKTITYÖ Tik-.115

SISÄLLYSLUETTELO Sisällysluettelo... Versiohistoria... 1. JOHDANTO... 4 1.1 Tarkoitus ja kattavuus... 4 1. Tuote... 4 1. Määritelmät, termit ja lyhenteet... 4 1.4 Viitteet... 5 1.5 Yleiskatsaus dokumenttiin... 5. YLEISKUVAUS....1 Ympäristö.... Toiminta.... Käyttäjät.... TIEDOT JA TIETOKANTA....1 Tietosisältö....1.1 Dimacsin ascii -formaatti....1. Dimacsin binääri -formaatti.... Käyttöintensiteetti.... Kapasiteettivaatimukset... 4. TOIMINNOT... 4.1 Yleistä... 4. Järjestelmän toiminnot... 9 4..1 Järjestäminen... 9 4.. Painottamattoman maksimiklikin koko... 10 4.. Yhden maksimiklikin laskeminen... 10 4..4 Kaikkien maksimi klikkien laskeminen... 10 4..5 Yhden klikin laskeminen luokkaa S... 10 4.. Kaikkien klikkien laskeminen luokkaa S... 10 4.. Yhden klikin laskeminen vähintään luokkaa S... 11 4..8 Kaikkien klikkien laskeminen vähintään luokkaa S... 1 4..9 Painotetun maksimiklikin koko... 1 4..10 Yhden maksimiklikin laskeminen... 1 4..11 Kaikkien maksimiklikkien laskeminen... 1 4..1 Yhden klikin laskeminen luokkaa S... 1 4..1 Kaikkien klikkien laskeminen luokkaa S... 1 4..14 Yhden klikin laskeminen vähintään luokkaa S... 1 4..15 Kaikkien klikkien laskeminen vähintään luokkaa S... 14 4..1 n ensimmäinen vaihe: Funktiokutsu... 14 4..1 n toinen vaihe: Komentorivikutsu... 15 5. ULKOISET LIITTYMÄT... 15 5.1 Laitteistoliittymät... 15 5. Ohjelmistoliittymät... 15 5. Tietoliikenneliittymät... 15. MUUT OMINAISUUDET... 1.1 Suorituskyky ja vasteajat... 1. Käytettävyys, toipuminen, turvallisuus, suojaukset... 1. Ylläpidettävyys... 1.4 Siirrettävyys/kannettavuus, yhteensopivuus... 1.5 Operointi... 1. SUUNNITTELURAJOITTEET... 1.1 Standardit... 1. Laitteistorajoitteet... 1

. Ohjelmistorajoitteet... 1.4 Muut rajoitteet... 1 8. JATKOKEHITYSAJATUKSIA... 1 VERSIOHISTORIA Versio Päivämäärä Laatija Kuvaus 1.0-.11.000 JDu Korjattu versio, klikkien kuvat korjattu oikeita vastaaviksi. 1.0-8.11.00 JDu Esimerkkigraafeja paranneltu ja vaatimusmäärittelyn vaatimuksien otsikointitapa tuotu toiminnalliseenmäärittelyyn. Lisätty useita parannuksia. 1.0-4 1.1.00 JDu Pieniä korjauksia

TOIMINNALLINEN MÄÄRITTELY 4 (1) Janne Dufva 1.1.000 1. JOHDANTO 1.1 Tarkoitus ja kattavuus 1. Tuote Tämä dokumentti määritteleen -ohjelman toiminnallliset ominaisuudet ja on tarkoitettu helpottamaan ohjelman suunnittelua kertomalla kuinka vaatimukset toteutetaan. Toiminnallista määrittelyssä suunnitellaan ja pyritään selventämään ohjelman perusideaa ja ominaisuuksia, mikä helpottaa myöhemmin tehtävää koodausta. Tavoitteena -ohjelmassa on koodata jo olemassaolevalle algoritmille toimiva ympäristö, jolloin algoritmin käyttö helpottuu ja algoritmille voidaan luoda uusia käyttötapoja. Algoritmin perusideana on etsiä annetusta graafista haluttuja ominaisuuksia. 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. Määritelmät, termit ja lyhenteet : Projektityön kohde. Ohjelma jonka tarkoituksena on etsiä haluttuja ominaisuuksia annetuista graafeista. Ohjelma kirjoitetaan isolla jos ohjelmasta puhutaan yleisesti tai viitataan projektityön nimeen. Kun varsinainen ohjelma koodataan, puhutaan wcliquesta pienellä alkukirjaimella. Tällöin tarkoitetaan ohjelman käynnistystiedostoa. 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 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). Algoritmi: Algoritmilla voidaan ratkaista olemassa olevasta graafista asioita, joista ollaan kiinnostuneita. Algoritmi jonka ympärille ohjelma rakennetaan on julkinen. 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/paper.ps Klikki: Klikki tarkoittaa yhteyttä usean solmun välillä Ansi c: Ohjelmointikieli, jolla ohjelma toteutetaan UML: "Unified Modeling Language" on ohjelmistotuotekehityksen standardikuvaamismenetelmä.

TOIMINNALLINEN MÄÄRITTELY 5 (1) Janne Dufva 1.1.000 1.4 Viitteet [Vaat] [ToimTemp] Vaatimusmäärittely Toiminnallisen määrittelyn mallidokumentti [Patrik1] Patric Östergårdin toimittama dokumentti 1 [Patrik] Patric Östergårdin toimittama dokumentti [Patrik] Patric Östergårdin toimittama dokumentti 1.5 Yleiskatsaus dokumenttiin Johdanto osuudessa luodaan yleiskatsaus dokumenttiin. Siinä selvitetään termit, lyhenteet ja viitteet jotka auttavat lukijaa tutustumaan tähän dokumenttiin ja -ohjelmaan. Toinen luku kuvaa ohjelmaa yleisellä tasolla. Jos lukija ei ole kiinnostunut pikkutarkasta ohjelman kuvauksesta, niin usein riittää tämän luvun lukeminen ohjelman idean ymmärtämiseksi. Tiedot ja tietokanta osuus kertoo tarvittavien tietokantojen osuudesta tähän projektiin. Työn luonteesta johtuen, tietokannat eivät ole suuressa merkityksessä tämän projektin missään suoritusvaiheessa. Neljänessä luvussa tarkennetaan toisessa luvussa esitettyjä ohjelman ominaisuuksia ja toimintoja. Luku viisi kertoo ulkoisista liittymistä ja toimintaympäristöstä -ohjelmassa. Luvussa kuvataan ei-toiminnallisia ominaisuuksia kuten vaadittua suorituskykyä, siirrettävyyttä ja ylläpidettävyyttä. Luku kertoo ohjelman rajoitteista Viimeisessä luvussa kerrotaan jatkokehityssuunnitelmista.

TOIMINNALLINEN MÄÄRITTELY (1) Janne Dufva 1.1.000. YLEISKUVAUS.1 Ympäristö. Toiminta ohjelma toimii Linux ja Unix ympäristössä (myöhemmin ehkä myös NT ympäristössä). ohjelmalla voidaan laskea graafeista tiettyjä ominaisuuksia kuten maksimigraafin koko. Ohjelmistoa voidaan käyttää upottamalla ohjelma kayttäjän koodiin tai komentorivikomennoilla. Syötteenä annettava tieto voi olla Dimacsin binäärisessä tai -ascii muodossa, mikä mahdollistaa graafien hakemisen Internetistä. Tästä on hyötyä myös ohjelman testauksessa, koska näin ohjelman toiminnasta ja suorituskyvystä saadaan tarkempaa tietoa. Tulosteena ohjelma antaa vastauksen siihen kysymykseen mitä käyttäjä kysyi. Alla olevssa Use case -kuvauksessa on esitetty ne kysymykset jota ohjelmalle voi esittää. Kuva 1. Use case kuva vaatimuksista.. Käyttäjät Koska ohjelman lähdekoodi on vapaasti saatavilla, voi ohjelmaa tieteellisessä käytössä käyttää kuka tahansa, ilman rajoituksia.

TOIMINNALLINEN MÄÄRITTELY (1) Janne Dufva 1.1.000. TIEDOT JA TIETOKANTA.1 Tietosisältö ohjelma voi lukea syötteenä kahta eri formaattia: binääristä ja ascii muotoista Dimacs -formaattia. Tulosteena antaa joko kokonaislukuja tai somupisteiden luettelon/luetteloita..1.1 Dimacsin ascii -formaatti Juha Kähkönen.1. Dimacsin binääri -formaatti Toinen käytettävistä lähdetiedostoformaateista on Dimacs:n binääriformaatti. Binääriformaatti on vaihtoehto Dimacs:n ascii-formaatille. Mikäli graafin kaarien lukumäärä suhteessa solmujen lukumäärään on keskimäärin 1, prosenttia suurempi, niin graafin binäärinen talletusformaatti on tilaa säästävämpi ratkaisu kuin ascii-talletusformaatti. Binäärinen talletusformaatti käyttää keskimäärin (N^)/1 tavua graafin N solmun ja M kaaren tallentamiseen. Kun taas ascii-formaatti tarvitsee noin M*9 tavua saman graafin tallentamiseen.. Käyttöintensiteetti Ohjelma ei rajoita käyttäjien määrää, jolloin usea käyttäjä voi käyttää ohjelmaa useasta eri paikasta.. Kapasiteettivaatimukset Ohjelma itsessään ei rajoita annettua tehtävää eikä määritä vaadittua minimilaitteistoa. Kiintolevytilaa -ohjelma ei vaadi merkittävästi. Suoritusaika riippuu annetun graafin koosta, pyydetystä tehtävästä sekä laitteiston tehokkuudesta. 4. TOIMINNOT 4.1 Yleistä Ensimmäisessä vaiheessa (funktiokutsu) pyritään muodostamaan tehokas käyttöliittymä vaaditulle algoritmille. Tällöin kuka tahansa käyttäjä voi upottaa koodin omaansa, tai rakentaa jo olemassa olevasta koodista itselleen sopivan liittymän. Tarkemmin tästä on kerrottu kappaleessa 4..9

TOIMINNALLINEN MÄÄRITTELY 8 (1) Janne Dufva 1.1.000 Toisessa vaiheessa (komentorivikutsu) ohjelmaa pyritään jatkokehittämään niin, että sitä voidaan kutsua komentoriviltä. Tällöin ohjelma käynnistetään wclique -käskyllä jonka perässä ovat parametrit. Parametreilla välitetään tiedot ohjelmalle jotta ohjelma tietää mitä lasketaan ja mitä tietoa käyttäjä haluaa tulosteena itselleen. Tarkemmin parametreista on kerrottu kappaleessa 4..10. Kuva :ssä on esitetty ohjelman periaatteellinen toiminta vuokaaviona. Huomioitavaa on että kaikissa tapauksissa graafin solmujen järjestelyä ei suoriteta (riippuu annetun graafin muodosta). Koska eri tapauksien tarkastelu on helpompaa esimerkkien avulla, otetaan malliesimerkiksi graafi joka on esitetty Kuva :ssa. Tätä graafia tarkastellaan luvuissa 4..1-4..8. Huomioitavaa tässä kuvassa on se, että painottamattomissa tapauksissa ei huomioida numeroita, painotetuissa tapauksissa ne huomioidaan. Graafin jokainen solmipiste on nimetty numerolla, jonka perässä suluissa on kyseisen solmun painoarvo. Jos somun indeksi on 4 ja sen painoarvo on, merkintätapa on 4(). Mikäli painoarvo on kaikissa solmuissa 1, ei painoarvoja merkitä ja graafia käsitellään painottamattomana graafina. Aloitus Syöte Järjestä graafi Tulosta Prosessoi Lopetus Kuva. n toiminta vuokaaviona.

TOIMINNALLINEN MÄÄRITTELY 9 (1) Janne Dufva 1.1.000 1(1) (8) () 4() 5() () (4) 8(5) Kuva. Esimerkkigraafi. 4. Järjestelmän toiminnot 4..1 Järjestäminen Ennen syötteen prosessointia, ohjelma järjestää tarvittaessa graafin uudelleen, käyttäen hyväksi väritys menetelmää. Siinä ideana on että saman klikin jokainen solmupiste nimetään omalla värillään. Eri klikkien solmuilla voi olla samoja värejä. Tätä havainnollistetaan Kuva 4:ssa. RAINE Kuva 4. Solmujen värittäminen klikkien perusteella.

TOIMINNALLINEN MÄÄRITTELY 10 (1) Janne Dufva 1.1.000 4.. Painottamattoman maksimiklikin koko Haluttaessa tietää graafin ominaisuuksista maksimiklikin koko, tulostaa vastauksena solmujen määrän. Tämä tapahtuu Kuva :n mukaisesti: Ohjelma käy läpi syötteenä annetun graafin, järjestää sen ja palauttaa tulosteena maksimiklikin koon. Esimerkkigraafin tapauksessa, ohjelma palauttaisi maksimiklikin koon eli arvon. Kuva 5:ssa on esitetty maksimi klikki joka voidaan saada esimerkkigraafista. 1 Kuva 5. Maksimi klikki. 8 4.. Yhden maksimiklikin laskeminen -ohjelma laskee pyydettäessä maksimiklikin, ja tulostaa sen solmupisteet (Kuva ). 1,,,,,8 Kuva. Maksimiklikin tuloste. 4..4 Kaikkien maksimi klikkien laskeminen -ohjelma laskee pyydettäessä kaikki maksimiklikit, ja tulostaa niiden solmupisteet. Esimerkkitapauksessa tuloste on sama kuin yhden maksimiklikin tapauksessa. 4..5 Yhden klikin laskeminen luokkaa S n tulostaa yhden luokkaa S olevan klikin solmupisteet. Jos tämä S olisi vaikkapa 4, voisi palauttaa esimerkiksi tulosteen: 8,,,1 4.. Kaikkien klikkien laskeminen luokkaa S n tulostaa kaikkien niiden klikkien solmupisteet, jotka ovat kooltaan luokkaa S. Jos esimerkkitapauksessamme oletetaan syötteen S arvoksi 4 (parametrimuodossa tämä S vastaa parametria -n?), tulostaa 19 eri solmupiste sarjaa. Tämä siksi, koska graafissa esiintyy yhdeksäntoista kappaletta klikkejä, joiden arvo on 4. Muutama näistä on esitetty Kuva :ssa.

TOIMINNALLINEN MÄÄRITTELY 11 (1) Janne Dufva 1.1.000 1 1 1 1 variaatio 8 variaatiota (pisteet ja vaihtuvat pisteiksi ja ) 8 variaatiota (pisteet ja -> pisteiksi ja ) 8 variaatiota (pisteet ja -> pisteiksi ja ) 1 5 8 variaatiota (piste -> pisteeksi ) variaatiota (piste -> pisteeksi ) variaatiota (piste -> pisteeksi ) 1 5 variaatiota (piste -> pisteeksi ) variaatiota (piste -> pisteeksi ) 8 variaatiota (piste -> pisteeksi ) Kuva. Esimerkkikuvaajan klikkejä, joissa klikkien määrä on 4. 4.. Yhden klikin laskeminen vähintään luokkaa S tulostaa somupisteet yhdestä klikistä, joka on vähintään luokkaa S. Jos S:n arvoksi annettaisiin esimerkkitapauksessamme esimerkiksi 5, voisi tuloste näyttää vaikka seuraavalta: 1,,,,.

TOIMINNALLINEN MÄÄRITTELY 1 (1) Janne Dufva 1.1.000 4..8 Kaikkien klikkien laskeminen vähintään luokkaa S Tässä tapauksessa kertoo niiden kaikkien klikkien somupisteet, jotka ovat kooltaan luokkaa S tai enemmän. Jos S:n arvoksi annetaan 5, tulisi n palauttaa neljä solmupiste sarjaa. Kuva 8:ssa on osoitettu ne neljä 5:n solmun klikkiä jota esimerkkigraafista löytyy. n antama tuloste on esitetty Kuva 9:ssa. 1 1 5 8 8 Kuva 8. Esimerkkikuvaajan klikit, joissa klikkien määrä on 5 tai enemmän. 1,,,,,8 1,,,,,,5,,,,,,8 Kuva 9. Vähintään luokkaa 5 olevien klikkien tuloste. 4..9 Painotetun maksimiklikin koko Haluttaessa tietää graafin ominaisuuksista maksimiklikin koko, ohjelman laskee ja tulostaa sen painoarvon. Tässä esimerkki ei poikkea paljoa kappaleen 4..1 esimerkistä. Ainoa ero on se että ohjelma palauttaa graafin sen klikin arvon jossa on suurin painoarvo, tässä tapauksessa maksimiklikki on sama kuin kappaleessa 4..1 (Kuva 10), mutta palautettava luku on (suluissa olevien painoarvojen summa). 1(1) (8) () () (4) Kuva 10. Painotettu maksimi klikki. 8(5)

TOIMINNALLINEN MÄÄRITTELY 1 (1) Janne Dufva 1.1.000 1,,,,,8 Kuva 11. Painotetun maksimiklikin tuloste. 4..10 Yhden maksimiklikin laskeminen -ohjelma laskee pyydettäessä maksimiklikin, ja tulostaa sen solmupisteet. Esimerkkitapauksessa tuloste olisi yhtäkuin Kuva, koska painoarvo tässä klikissä on suurin. 4..11 Kaikkien maksimiklikkien laskeminen -ohjelma laskee pyydettäessä kaikki maksimiklikit, ja tulostaa niiden solmupisteet. Esimerkkitapauksessa tuloste olisi yhtäkuin Kuva, koska painoarvo tässä klikissä on suurin. 4..1 Yhden klikin laskeminen luokkaa S tulostaa yhden luokkaa S olevan klikin solmupisteet. Jos tämä S olisi vaikkapa 0, voisi palauttaa esimerkiksi tulosteen:,,, 4..1 Kaikkien klikkien laskeminen luokkaa S n laskee kaikkien klikkien solmupisteet, jotka ovat kooltaan luokkaa S. Jos pyydetää luokkaa 1 olevien klikkien lukumäärää, paluttaisi kolme sarjaa solmupisteitä. Nämä ehdon täyttävät klikit on esitetty Kuva 1:ssä. () 1(1) (8) () 5() () (4) (8) () (4) Kuva 1. Luokkaa 1 olevat klikit. 8(5) () 4..14 Yhden klikin laskeminen vähintään luokkaa S tulostaa yhden klikin solmupisteet, jotka ovat kooltaan vähintään luokkaa S. Esimerkki tuloste voisi olla vaikka S:n arvolla 1: 1,,,,.

TOIMINNALLINEN MÄÄRITTELY 14 (1) Janne Dufva 1.1.000 4..15 Kaikkien klikkien laskeminen vähintään luokkaa S tulostaa kaikkien niiden klikkien solmupisteet, jotka ovat kooltaan vähintään luokkaa S. Jos S:lle annettaisiin tässä tapauksessa syötteenä arvo 1, palauttaisi seitsemän sarjaa solmupisteitä. Nämä seitsemän ehdot täyttävää klikkiä on esitetty Kuva 1:ssä ja n tuloste on esitetty Kuva 11:ssä. 1(1) (8) () (8) () 1(1) (8) () 5() (8) () () (4) () (4) () (4) () (4) 8(5) (8) (8) () (8) 8(5) () (4) () 5() () (4) 8(5) 8(5) Kuva 1. Klikit joiden arvo vähintään 1. 1,,,,,,5,,,,,,5 1,,,,,8,,,8,,,8,5,, Kuva 14. Tuloste painotetussa tapauksessa: S on vähintään 1. 4..1 n ensimmäinen vaihe: Funktiokutsu OSSI

TOIMINNALLINEN MÄÄRITTELY 15 (1) Janne Dufva 1.1.000 4..1 n toinen vaihe: Komentorivikutsu ohjelma käynnistetään komennolla: wclique ja sen parametrin on esitetty Kuva 15:ssä. wclique <filename> -f[abp] -s[c] -c[1 14] -n[?].exe on käynnistettävä ohjelma. Filename kertoo tiedoston, johon graafin parametrit on talletettu. -f[abc] kertoo syötteen formaatin muodon. a=dimacsin ascii b=dimacsin binary -s[c] kertoo halutun tulosteen luokittelun c=color -c[1,,,4,5,,,8,9,10,11,1,1,14] keroo halutun tehtävän numeron. 1=Painottamattoman maksimiklikin koko = Painottamattoman yhden maksimiklikin laskeminen = Painottamattomien kaikkien maksimiklikkien laskeminen 4= Painottamattoman yhden klikin laskeminen luokkaa S 5= Painottamattomien kaikkien klikkien laskeminen luokkaa S = Painottamattoman yhden klikin laskeminen vähintään luokkaa S = Painottamattomien kaikkien klikkien laskeminen vähintään luokkaa S 8=Painotetun maksimiklikin koko 9= Painotetun yhden maksimiklikin laskeminen 10=Painotettujen kaikkien maksimiklikkien laskeminen 11= Painotetun yhden klikin laskeminen luokkaa S 1= Painotettujen kaikkien klikkien laskeminen luokkaa S 1= Painotetun yhden klikin laskeminen vähintään luokkaa S 14= Painotettujen kaikkien klikkien laskeminen vähintään luokkaa S -n[x] kertoo halutun arvon S.lle(ks. Kappaleet 4..5-4..8 ja 4..1-4..15 -n huomioidaan vain tehtävänumeroissa: 4,5,,,11,1,1,14 Kuva 15. Komentorivikutsu ja sen parametrien selitykset. 5. ULKOISET LIITTYMÄT 5.1 Laitteistoliittymät 5. Ohjelmistoliittymät 5. Tietoliikenneliittymät

TOIMINNALLINEN MÄÄRITTELY 1 (1) Janne Dufva 1.1.000. MUUT OMINAISUUDET.1 Suorituskyky ja vasteajat Suorituskyvylle annettiin vaatimusmäärittelyssä yksi vaatimus: n tulee olla ainakin yhtä tehokas kuin oli Patric Östergårdin protoversio. Varsinaisia tehokkuuslukuja ei pystytä takaamaan graafien monimuotoisuuden ja eri esitystapojen takia. Sama graafi voidaan esittää usealla eri tavalla, jolloin tehokkuus vaihtelee.. Käytettävyys, toipuminen, turvallisuus, suojaukset ei tee graafin järkevyystarkastelua mutta se tekee syötetiedoston syntaksitarkastelun, eli tarkistaa onko syötetiedosto oikeassa formaatissa.. Ylläpidettävyys Ensimmäinen ja ehkä tärkein ylläpidettävyyteen liittyvä tekijä on koodien kommentoinnit. Tämä tapahtuu kommentoimalla jokaisessa modulissa sen tehtävät, rajapinnat ja tarkoitus. Toinen mainittava seikka on ohjelman manuaalit, jotka tehdään LaTex formaatissa, jotta manuaalien muokkaaminen olisi myöhemmin mahdollisimman helppoa Unix ympäristössä..4 Siirrettävyys/kannettavuus, yhteensopivuus Koska ohjelma on saatavana ansi -C muodossa, on sen siirrettävyys helppoa. Tietokoneelta vaaditaan vain yleinen ansi -C kääntäjä joka suorittaa C -koodin käännöksen, jonka jälkeen ohjelma on ajettavissa..5 Operointi. SUUNNITTELURAJOITTEET.1 Standardit Ohjelma on tehty ansi -C kielellä kuten vaatimusmäärittelyissä on kerrottu.. Laitteistorajoitteet

TOIMINNALLINEN MÄÄRITTELY 1 (1) Janne Dufva 1.1.000. Ohjelmistorajoitteet ohjelma on käyttöjärjestelmä riippumaton. Sen tulee toimia yleisimmissä Unix koneissa sekä myöhemmin myös Windows maailmassa..4 Muut rajoitteet 8. JATKOKEHITYSAJATUKSIA Myöhemmästä jatkokehityksestä vastaa Patric Östergård.