Projektisuunnitelma

Asdf

Helsinki 22.2.2008 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi

581260 Ohjelmistotuotantoprojekti (6 ov)

Projektiryhmä Kuisma Sami Louhio Jaakko Rimpilä Raine Urtela Mika Vilhonen Vesa

Asiakas Pasanen Tomi

Johtoryhmä Yrjänäinen Sampo Simola Kimmo

Kotisivu

http://www.cs.helsinki.fi/group/asdf

Versiohistoria

Versio Päiväys Tehdyt muutokset
0.1  18.1.2008 Luonnos. Vesa Vilhonen
0.2  20.1.2008 Aikataulut osion lisäys. Raine Rimpila
0.3  20.1.2008 Projektiorganisaatio kappaleen päivitys, Seuranta- ja Raportointimenetelmät kappeleen lisäys. Vesa Vilhonen
0.4  24.1.2008 Koko- ja kustannusarvio Vesa Vilhonen

Sisältö

1 Johdanto 1

2 Sanasto 1

3 Projektiorganisaatio ja työn jako 2 3.1 Roolien vastuualueet . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3.2 Roolijako . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 3.3 Asiakkaat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2

4 Riskianalyysi 3 4.1 Asteikko . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4.2 Projektikohtaiset riskit . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

5 Projektin laitteisto- ja ohjelmistovaatimukset 4 5.1 Laitteistovaatimukset . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5.2 Palvelin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5.3 Asiakas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 5.4 Tietokanta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

6 Koko- ja kustannusarviot 5

6.1 Kokoarvio koodiriveissä . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6.1.1 Asiakasohjelma . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6.1.2 palvelin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5

6.2 Toimintopisteanalyysi . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6.2.1 Komponenttijako . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6.2.2 Hienosäätöpisteet . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6.2.3 Toimintopisteet . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 6.2.4 Tulkinta . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

7 Projektin aikataulu 7

8 Seuranta- ja raportointimenetelmät 7 8.1 TRAC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

1 Johdanto

Pokerin suosio tekoälyn tutkimuskohteena on kasvanut viimeisten vuosien aikana. Koska tekoälytutkimus aiheesta on vielä suhteellisen nuorta, tarjoaa se paljon erilaisia mahdollisuuksia kehittää nykyisiä tekoälyratkaisuja. Lisäksi pokeri tarjoaa luonnollisen alustan yleiselle tekoälytutkimukselle. Texas hold’em on nykyään selvästi suosituin pokeripeli. Samat syyt, jotka ovat tehneet siitä suositun, tekevät siitä myös haastavan tekoälyn tutkimuskohteen.

Erilaisten tekoälyratkaisujen paremmuuden testaaminen käytännössä edellyttää, että niitä on mahdollista testata eri tasoisia ja tyylisiä tietokone- ja ihmisvastustajia vastaan. Projektin tarkoituksena on mahdollistaa tämä, tarjoamalla rajapinta toteutettaville tekoälysovelluksille sekä graafinen käyttöliittymä ihmispelaajille.

2 Sanasto

Sana Selitys
SQL Structured Query Language on IBM:n kehittämä standardoitu kyselykieli,

jolla relaatiotietokantaan voi tehdä erilaisia hakuja, muutoksia ja lisäyksiä.

JDBC Java Database Connectivity (JDBC) on universaali ja toimittajariippumaton standardi,

jonka mukaan Java-sovellukset voivat operoida SQL-tietokantojen kanssa.

TRAC Web-pohjainen projektinhallintasovellus.

3 Projektiorganisaatio ja työn jako

Projektin organisaatio koostuu viidestä opiskelijasta ja yhdestä ohjaajasta, joka ei osallistu projektin tekemiseen.

Projektilla on kaksi asiakasta. Ryhmän päätöksenteko perustuu demokratiaan.

3.1 Roolien vastuualueet

Rooli  Vastuualue
Dokumenttivastaava Dokumenttivastaava vastaa dokumenttien yhtenäisestä ulkoasusta

ja projektin www-sivusta.

Suunnitteluvastaava Suunnitteluvastaava vastaa yhtenäisistä suunnittelutason rajapinnoista

ja suunnitteludokumentin yhdenmukaisesta rakenteesta.

Asiakasvastaava  Asiakasvastaava vastaa tapaamisten ja asioiden koordinoimisesta

asiakkaiden kanssa.

Koodivastaava  Koodivastaava vastaa koodin yhtenäisestä ulkoasusta ja rajapintojen

yhtenäisyydestä.

Projektipäällikkö  Vastaa projektisuunnitelman tuottamisesta ja ylläpidosta sekä projektin

seurannasta. Projektipäällikkö määrittää projektin aikataulun, tehtävät sekä resurssien jakamisen. Projektipäällikkö laatii myös kokousten esityslistat ja toimii kokouksien puheenjohtajana, ellei toisin päätetä.

Ohjaaja  Sampo Yrjänäinen

3.2 Roolijako

Rooli  Nimi
Dokumenttivastaava Sami Kuisma
Suunnitteluvastaava Jaakko Louhio
Asiakaskontaktit  Raine Rimpila
Koodivastaava  Mika Urtela
Projektipäällikkö  Vesa Vilhonen
Ohjaaja  Sampo Yrjänäinen

3.3 Asiakkaat

Projektin asiakkaat ovat Tomi Pasanen ja Teemu Saukonoja.

4 Riskianalyysi

4.1 Asteikko

Todennäköisyyttä ja vakavuutta mitataan matala-keskiverto-korkea asteikolla.

4.2 Projektikohtaiset riskit

Riski

Projektia ei saada toteutettua käytettävissä olevassa ajassa.

Todennäköisyys

korkea

Vakavuus korkea

Vastatoimet Projektin ajankäyttöä tulee suunnitella ja seurata tarkasti koko projektin ajan.

Riski

Ryhmän jäsen sairastuu kesken projektin.

Todennäköisyys

keskiverto

Vakavuus keskiverto

Vastatoimet Sairastuneen henkilön tehtävät tulee välittömästi jakaa käytettävissä oleville henkilöille.

Riski

Projektin jonkin vaiheen toteuttaminen vaatii puuttuvaa teknistä osaamista.

Todennäköisyys

keskiverto

Vakavuus keskiverto

Vastatoimet Osaaminen tulee kartoittaa suunnittelussa, jossa mahdollinen osaamisen puute voidaan kiertää, jos sen kerääminen tehtävän ohessa ei ole mahdollista.

Riski Suunnittelussa ilmenee puutteita, jotka aiheuttavat jonkin suunnitelmien pohjalta tehdyn osan uudelleentekemisen.

Todennäköisyys

keskiverto

Vakavuus keskiverto

Vastatoimet Koko ryhmän tulee osallistua suunnitelman laatimiseen ja suunnitelmista tulee järjestää ajoittaisia katselmuksia niiden lukkoonlyömiseksi.

Riski Ohjelmiston monimutkaisuuden kasvaminen tuo mukanaan ohjelmistovirheitä, jotka ovat vaikeasti jäljitettäviä tai joita on lukuisasti.

Todennäköisyys

korkea

Vakavuus keskiverto

Vastatoimet Jokaiselle komponentille tai luokalle tulee kirjoittaa yksikkötesti, joka voidaan mieluiten ajaa automaattisesti. Ohjelmistolle tulee myös suorittaa ajoittain funktionaalisia testejä.

Riski

Valittu ympäristö tai tekniikka osoittautuu kelvottomaksi tarkoitukseen.

Todennäköisyys

matala

Vakavuus korkea

Vastatoimet Suunnittelussa tulee kartoittaa valittujen ympäristöjen ja tekniikoiden puutteita.

5 Projektin laitteisto- ja ohjelmistovaatimukset

5.1 Laitteistovaatimukset

Ohjelmistot toimivat Pentium III yhteensopivalla tai paremmalla suorittimella. Muistivaatimus on 128 Mb.

5.2 Palvelin

Palvelinpuolen komponentti on suunniteltu toimimaan Java EE yhteensopivalla sovelluspalvelimella. Apache Tomcat on eräs yhteensopiva toteutus, joka toimii useilla Linux/Unix alustoilla sekä Windowsilla.

5.3 Asiakas

Asiakaskomponentti on suunniteltu toimimaan Java 2 Standard Edition alustalla. Alustan vaatimat ohjelmistot ovat saatavilla useimmille käyttöjärjestelmille.

5.4 Tietokanta

Palvelinpuolen komponentti käyttää tietokantaa JDBC-rajapinnan kautta. Tietokannan tulee olla yhteensopiva edellämainitun rajapinnan sekä SQL92 standardin kanssa. Oracle, MySQL ja PostgreSQL ovat eräitä yhteensopivia tietokantaohjelmistoja.

6 Koko- ja kustannusarviot

6.1 Kokoarvio koodiriveissä

Projektissa tulee olemaan arviolta 5000-7000 koodiriviä. Projektin tulee kestämään 15 viikkoa.

6.1.1 Asiakasohjelma

Komponentti  Koodirivit
Käyttöliittymä  1000
Logiikka  2000
Tietoliikenneoperaatiot 300

6.1.2 palvelin

Komponentti  Koodirivit
Logiikka  3000
Tietokantaoperaatiot  800
Tietoliikenneoperaatiot 300

6.2 Toimintopisteanalyysi

Analyysi tehdään listaamalla ohjelmiston toiminnot rajapintojen mukaan luokiteltuna. Jokaisen toiminnon ohessa on toteutuksen vaikeustason luokitus matala-keskiverto-korkea ja vastaava pistemäärä.

6.2.1 Komponenttijako Syötteet

• Kirjautuminen, matala, 2

• Käyttäjien hallinnointi, keskiverto, 4

• Bottien hallinnointi, keskiverto, 4

• Pelien hallinnointi, keskiverto, 5

• Pelin pelaaminen, keskiverto, 8 Tulosteet

• Peliaulanäkymä, keskiverto, 6

• Pelipöytänäkymä, keskiverto, 7

• Käyttäjienmuokkausnäkymä, keskiverto, 8 Liittymät

• Tietokanta, keskiverto, 8

• XML-pohjainen tietoliikenneprotolla, keskiverto, 8 6.2.2 Hienosäätöpisteet Sivuston http://www.softwaremetrics.com/fpafund.htm taulukkoa käytettiin hienosäätöarvon laskemisessa. Hienosäätöarvo (VAF) = 0.65 + (27 / 100) hienosäätöarvo = 0.92 6.2.3 Toimintopisteet UAF = 2+4+4+5+8+6+7+8+8+8 = 60 FP = UAF * VAF = 55.2 6.2.4 Tulkinta Henkilötyökuukausia projektilla on käytössään n. 4 * 5 / 2 = 10. Viimeinen puolitus johtuu siitä, että viikossa käytetään keskimäärin 20 tuntia normaalin 40 tunnin sijasta. Eräällä kaavalla henkilötyökuukausia toimintopisteistä kertyisi 55.23*0.45/27 = 8.32.

7 Projektin aikataulu

Projekti alkoi 14.1.2008. Projekti päättyy 2.5.2008. Periodien välinen viikko 3.3.2008 - 9.3.2008 on tarkoitus pitää vapaana. Vaiheita voidaan suorittaa osin päällekkäin mahdollisuuksien rajoissa, ja projektin aikataulua päivitetään jatkuvasti.

Työvaihe  Alkaa  Valmis
Projektin aloitus ja ongelmaan tutustuminen 14.1.2008 21.1.2008
Projektisuunnitelma PS1  14.1.2008 28.1.2008
Vaatimusmäärittelyn yleistaso VD1  14.1.2008 4.2.2008
Järjestelmätestauksen suunnittelu  28.1.2008 11.2.2008
Suunnittelu S1  4.2.2008 25.2.2008
Toteutus ja yksikkotestaus  18.2.2008 12.3.2008
Integrointi- ja järjestelmätestaus  27.2.2008 17.3.2008
Demo ja asiakkaan palaute  10.3.2008 17.3.2008
Projektisuunnitelman päivitys  10.3.2008 17.3.2008
Vaatimusmäärittelyn päivitys VD2  17.3.2008 24.3.2008
Suunnittelu SD2  24.3.2008 9.4.2008
Toteutus ja yksikkotestaus  26.3.2008 16.4.2008
Integrointi- ja järjestelmätestaus  7.4.2008 21.4.2008
Demo ja asiakkaan palaute  14.4.2008 21.4.2008
Projektin viimeistely ja palautus  16.4.2008 28.4.2008

8 Seuranta- ja raportointimenetelmät

Projektin edistymistä ja henkilöiden ajankäyttöä seurataan kaksi kertaa viikossa olevissa kokouksissa. Henkilöt kirjaavat tehdyt työtunnit ja niiden kohteen Ohjelmistotuotantoprojektikurssin tietojärjestelmään.

8.1 TRAC

Tehtävistä, aikatauluista ja bugeista pidetään kirjaa TRAC sovelluksessa. Tehtävät kirjataan TRACiin vastuuhenkilön kera kokouksissa tehtäviä jaettaessa.