Projektisuunnitelma. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Samankaltaiset tiedostot
Projektisuunnitelma. KotKot. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Projektisuunnitelma Nero-ryhmä

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

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

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Projektisuunnitelma. HeTLi. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ylläpitodokumentti Mooan

Convergence of messaging

Projektisuunnitelma. AssariXP-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Käyttöohje. Aija. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Projektiorganisaation kuuluvat projektin asiakas, projektin vastuuhenkilö, projektiryhmän ohjaaja sekä projektiryhmä.

Käyttöohje. Versiohistoria: versio Mari Kommenttien perusteella korjattu versio

Projektisuunnitelma Viulu

Playoff kokouspöytäkirja 4

Testaussuunnitelma Labra

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

CoMa - Projektisuunnitelma

Testausraportti v.1.3

SOVELLUSPROJEKTIN ARVIOINTILOMAKE

Lohtu-projekti. Testaussuunnitelma

Testausraportti. Oppimistavoitteiden hallintajärjestelmä harri

Projektisuunnitelma. Almu. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Ohjelmiston toteutussuunnitelma

Projektisuunnitelma. Laitteiston ja kalusteiden hankinta, versio WEB MAGIA OY Laatija Oula Kangas

Lego Mindstorms anturit

Projektisuunnitelma. Asdf. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Määrittelydokumentti NJC2. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Kasi. Projektisuunnitelma. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Projektisuunnitelma. Populous. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Projektisuunnitelma. Kohahdus. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Asennusohje. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Projektisuunnitelma 0.11

Testaussuunnitelma. Ohjelmistotuotantoprojekti Nero. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Projektisuunnitelma. HenTyLi. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Kieliaineistojen käyttöoikeuksien hallinnan tietojärjestelmä

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Projektisuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testausdokumentti. Sivu: 1 / 10. Ohjelmistotuotantoprojekti Sheeple Helsingin yliopisto. Versiohistoria

Proffa ilmoittautumisen profiloija

Matematiikan oppifoorumi Projektisuunnitelma

Yhteenvetodokumentti. myva. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

3. Projektinhallinta. Miksi ohjelmistoprojektin hallinta on erilaista?

Testaussuunnitelma. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

T Testiraportti - integraatiotestaus

Ohjelmistotuotanto, projektinhallinta Kevät 2005

Projektisuunnitelma. Oppimistavoitteiden hallintajärjestelmä harri

Ohjelmistotuotantoprojekti

Siimasta toteutettu keinolihas

Testaussuunnitelma. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

TYÖOHJEET VR-HYVINKÄÄ

SALAKIRJOITUKSEN VAIKUTUS SUORITUSKYKYYN UBUNTU käyttöjärjestelmässä -projekti

Valtioneuvoston kanslia VAIN VIRKAKÄYTTÖÖN Hallinto- ja palveluosasto/hallintoyksikkö Terja Ketola PTJ2008-työsuunnitelma 1 (5)

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

A4.1 Projektityö, 5 ov.

TIETOKANTA MERIKOTKIEN SEURANTAAN Projektisuunnitelma

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

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

Harjoitustyö Case - HelpDesk

UCOT-Sovellusprojekti. Testausraportti

Projektisuunnitelma. Geneerinen kaavioiden piirto-ohjelmisto

Vaatimusmäärittely. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Projektisuunnitelma. Karstula. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Projektisuunnitelma. OPEAPURI Opetuutorin apuväline. Ohjelmistotuotantoprojekti Helsinki HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Verkkopokerijärjestelmä. Loppuraportti Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008

T Testiraportti - järjestelmätestaus

Subversion-ohje. Linux Traffic Control-käyttöliittymä Ryhmä paketti2

Projektisuunnitelma PUSU. Push-palvelin RSS-syötteille. Ohjelmistotuotantoprojekti Syksy / 2007 Helsingin Yliopisto Tietojenkäsittelytieteen laitos

Ylläpitodokumentti. Ohjelmistotuotantoprojektin tietojärjestelmä OhtuTie

Ohjelmistotuotantoprojekti

Testaussuunnitelma. PUSU-ryhmä. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testausraportti. Orava. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Yhteenvetodokumentti. PLAYOFF Jari Anttila Sanna Fröblom Aarno Sandvik Tommi Paavilainen Miikka Kohijoki. Päivi Pääkkö, ohjaaja

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

Projektisuunnitelma. Metaxa. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

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

KÄYTTÖLIITTYMÄ SÄÄKSIEN PESIMÄTIETOJEN TIETOKANTAAN Projektisuunnitelma

HELSINGIN YLIOPISTO TIETOJENKÄSITTELYTIETEEN LAITOS OHJELMISTOTUOTANTOPROJEKTI HABA Projektisuunnitelma versio 0.1

T Tietojenkäsittelyopin ohjelmatyö Tietokonegrafiikka-algoritmien visualisointi Vaatimustenhallinta

Verkkopokerijärjestelmä Projektisuunnitelma Ryhmä Kanat Ohjelmistotuotantoprojekti, syksy 2008

Projektisuunnitelma. (välipalautukseen muokattu versio) Vesiprosessin sekvenssiohjelmointi ja simulointiavusteinen testaus

Toteutus. Sahara-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Loppuraportti. HeTLi. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Helsingin yliopisto Tietojenkäsittelytieteen laitos Ohjelmistotuotantoprojekti. Esimerkkituoteperhe. Projektisuunnitelma

AS Automaatio- ja systeemitekniikan projektityöt - Projektisuunnitelma

Onnistunut SAP-projekti laadunvarmistuksen keinoin

Titta-palvelun käyttöohje

Toteutusvaihe T3 Digi-tv: Edistymisraportti

Projektisuunnitelma. Oppimistavoitteiden hallintajärjestelmä harri

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

Ilmoittautumisten profiloija (jatkoprojekti) ILPO2

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

Good Minton Sulkapalloliiton Kilpailujärjestelmä SEPA: Heuristinen arviointi

Digi-tv vastaanottimella toteutetut interaktiiviset sovellukset

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Projektisuunnitelma. myva. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

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

Projektisuunnitelma. Kaapo - Kaavioiden piirto-ohjelma

emo eassari Moodle-ympäristössä Projektisuunnitelma

Titta-palvelun käyttöohje

Yhteenvetodokumentti. Halaan-ryhmä. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Transkriptio:

Projektisuunnitelma Sahara-ryhmä Helsinki 1.9.2005 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Sanna Keskioja Sampo Lehtinen Hanna Liedenpohja Seppo Syrjänen Asiakas Joni Salmi Johtoryhmä Juha Taina Kimmo Simola Kotisivu http://www.cs.helsinki.fi/group/sahara Versiohistoria Versio Päiväys Tehdyt muutokset 0.1 01.6.2005 Ensimmäinen versio/sl 0.2 08.07.2005 Päivitys/SK 0.3 1.9.2005 Editointia/SL 1.0 1.9.2005 Valmis/SL

Sisältö i 1 Johdanto 1 2 Organisaatio 1 3 Työn yleiskuvaus 1 3.1 Nykytilanne................................. 1 3.2 Laitteisto- ja ohjelmistovaatimukset.................... 2 3.2.1 Käyttöliittymä........................... 2 3.2.2 Sovelluslogiikka.......................... 2 3.2.3 Tietokanta.............................. 2 4 Kokoarvio 3 4.1 Toteutuma.................................. 3 4.2 Arviot.................................... 3 5 Aikataulu 5 5.1 Päättyneet vaiheet.............................. 5 5.2 Käynnissä olevat vaiheet.......................... 6 5.3 Alkavat vaiheet............................... 6 5.4 Tulevia määräpäiviä............................. 6 6 Työskentelytavat 6 6.1 Kokouskäytäntö............................... 6 6.1.1 Koollekutsuminen......................... 7 6.1.2 Asialista.............................. 7 6.1.3 Pöytäkirjat............................. 7 6.1.4 Poissaolot.............................. 7 6.1.5 Myöhästymiset........................... 7 6.2 Projektin tehtävät.............................. 7 6.2.1 Aloitus............................... 7 6.2.2 Projektisuunnitelma........................ 8 6.2.3 Käyttöliittymäsuunnittelu..................... 8 6.2.4 Vaatimusmäärittely......................... 8

ii 6.2.5 Suunnittelu............................. 8 6.2.6 Toteutus............................... 9 6.2.7 Testaus............................... 9 7 Riskianalyysi 10 7.1 Viisi suurinta riskiä............................. 10 7.2 Projektiryhmän riskit............................ 11 7.3 Projektityön riskit.............................. 12 7.4 Tekniikan ja työkalujen riskit........................ 13 7.5 Toteutettavaan ohjelmistoon liittyvät riskit................. 14

1 Johdanto 1 Sahara on Helsingin yliopiston tietojenkäsittelytieteen laitoksen ohjelmistotuotantoprojekti. Projektissa tuotetaan Tanja-järjestelmä, jonka avulla tietojenkäsittelytieteen laitoksella työskentelevä tuntiohjaaja tai joku muu ryhmiä kokoonkutsuva henkilö voi jakaa ryhmänsä jäsenille sekä ryhmän yhteisiä että osallistujien henkilökohtaisia tapaamisaikoja. Tämän projektisuunnitelman tehtävänä on toimia ryhmän sisäisenä ohjeistuksena ja auttaa projektia pysymään aikataulussa. Tässä dokumentissa määritellään ryhmän sisäinen työnjako, ryhmän noudattama prosessi, siihen liittyvät työvaiheet ja niiden aikataulut. Projektin aikana ryhmä työskentelee projektisuunnitelman mukaisesta työvaiheesta toiseen. Työvaiheen tuloksena saadaan vaiheen tulokset kokoava dokumentti. Dokumentissa määritellään myös projektissa käytettävät työmenetelmät ja ohjelmistot. 2 Organisaatio Projektin osapuolet ja heidän tehtävänsä: Projektiryhmä Sahara Sanna Keskioja Käyttöliittymä ja dokumenttivastaava, skeskioj@cs.helsinki.fi Sampo Lehtinen Projektipäällikkö, sampo.lehtinen@helsinki.fi Hanna Liedenpohja Koodi- ja www-vastaava, hliedenp@cs.helsinki.fi Seppo Syrjänen Suunnittelu- ja testausvastaava, seppo.syrjanen@helsinki.fi Muut osapuolet Joni Salmi Juha Taina Kimmo Simola 3 Työn yleiskuvaus 3.1 Nykytilanne Asiakas, joni.salmi@helsinki.fi Vastuuhenkilö, juha.taina@helsinki.fi Ohjaaja, ksimola@cs.helsinki.fi Tällä hetkellä Helsingin yliopiston tietojen Tietojenkäsittelytieteen laitoksen opintoihin kuuluu harjoitustyökursseja. Laitos tarjoaa harjoitustöiden ohjausta viisi kertaa lukuvuodessa: kaksi kertaa sekä syksyllä että keväällä sekä kerran kesällä. Opiskelijat ilmoittautuvat suorittamaan harjoitustyötä toteutettavasta Tanja-järjestelmästä erillisen Ilmojärjestelmän kautta,josta tiedot siirtyvät laitoksen kurssikirjanpitoon Kurki-järjestelmään. Ohjaaja laatii aikataulut harjoitustyöryhmän aloitustapaamisessa manuaalisesti "huutoäänestyksellä", kierrättämällä listaa istumajärjestyksessä tai jollain monimutkaisemmalla menetelmällä.manuaalisilla menetelmillä tuotetut tapaamisaikataulut eivät välttämättä ole parhaita mahdollisia tai reiluja. Nopeimmat ja röyhkeimmät saavat parhaat ajat hiljaisten ja hitaiden joutuessa tyytymään jäljelle jääviin aikoihin. Lisäksi aikataulun laatiminen

manuaalisilla menetelmillä vie aikaa, kun aikojen sopivuuksia selvitetään yksi opiskelija kerrallaan muiden opiskelijoiden odotellessa. 2 3.2 Laitteisto- ja ohjelmistovaatimukset Järjestelmän tarkoituksena on helpottaa ja tasapuolistaa ohjausajoista sopimista sekä parantaa tapaamisaikojen sopivuutta kokonaisuudessaan. Järjestelmää kaavaillaan käytettäväksi erilaisiin harjoitustöihin liittyvien tapaamisten, erilaisten ryhmätapaamisten ja palaverien sekä kehityskeskusteluiden ajankohtien sopimiseen. Asiakkaan alkuperäisten kaavailuiden mukaan järjestelmää käytetään ohjaajalähtöisesti. Tällöin ohjelman tehtäväksi jää lähinnä sopivimman aikataulun laskeminen ja visuaalisena apuna toimiminen mahdollisen huutoäänestyksen tapahtuessa. Asiakas toivoo myös mahdollisuutta laajentaa järjestelmä hajautetuksi, niin että ryhmän osallistujat voivat syöttää omat tietonsa itse. Järjestelmän arkkitehtuurin tulee muodostua kolmesta osasta: käyttäjän kanssa kommunikoivasta käyttöliittymästä, syötetietojen perusteella varsinaiset tapaamisajat muodostavasta sovelluslogiikasta sekä tiedot tallentavasta tietokannasta. Ohjelmiston on sovelluttava käytettäväksi tietojenkäsittelytieteen laite ja ohjelmistoympäristössä. Tietojen tallettamiseen käytetään jotain tietokannanhallintajärjestelmää. 3.2.1 Käyttöliittymä Käyttöliittymä toimii normaalissa nykyaikaisessa kannettavassa tai työpöytäkoneessa joko selaimen kautta tai sellaisenaan itsenäisenä sovelluksena. Toteutukseen kaavaillaan käytettävän Javan 1.5 versiota. Käyttöliittymän toimintaa missa laitteissa ei mitenkään tietoisesti estetä tai hankaloiteta, mutta testauksessa ja toteutuksessa näitä laitteita ei oteta huomioon. 3.2.2 Sovelluslogiikka Sovelluslogiikka tarkistaa käyttäjän käyttöliittymän kautta antamien syötetietojen oikeellisuuden ja muodostaa niiden perusteella ryhmän aikataulun. Sovelluslogiikka toimii sovelluspalvelimella, joka varmistaa tietojen oikeellisuuden, tallettaa ja noutaa tietoa varastosta käyttöliittymältä saatavien pyyntöjen mukaan. Riippuen valittavasta ohjelmiston toteutustavasta voidaan mahdollisia ympäristöjäovat esimerkiksi Tomcat, JBoss tai lopulta valituksi tullut PHP. Valittavan toteutusympäristön tuli myös olla joko valmiiksi asennettuna tai helposti asennettavissa laitoksen ympäristöön. 3.2.3 Tietokanta Tietokanta halutaan eristää muusta ohjelmistosta. Voidaan käyttää DAL-mallia (data access layer), jonka avulla voidaan abstrahoida käytettävä tietokanta muun tietojärjestelmän suuntaan. DAL-mallin käyttämisestä saadaan hyötynä mahdollisuus vaihtaa tietokanta toiseen

vähällä työlla tai pidemmälle vietynä toteutettua koko ohjelmisto tietokantariippumattomasti. Tähän on olemassa valmiiksi toteutettuja ja testattuja välineitä, kuten Enterprise Java Beans. Lopulta tietokannan abstrahointi jätettiin toteuttamatta. 3 4 Kokoarvio 4.1 Toteutuma Kokoarviot on tehty Java-kielistä toteutusta silmällä pitäen. Vaihdettaessa toteutustavaksi PHP laskelmia ei tehty uudestaan. Jätämme laskelmat kuitenkin tähän, ne toimivat PHP:n kohdalla suuntaa-antavina sekä osoituksena siitä, että arviointimahdollisuuksiin tutustuttiin ja että niitä pyrittiin käyttämään hyödyksi. PHP-koodia kirjoitettiin lopulta lähes 5000 riviä. Kokonaisuudessaan projekti käytti PHPkoodia lähes 7000 riviä. Projektin puitteissa kirjoitettiin myös muutamia satoja rivejä JavaScript (ECMAScript) koodia, sh- ja perl-scriptejä sekä tuntematon määrä lopulta käyttämättä jääneitä kokeiluja Java-kielellä. 4.2 Arviot Järjestelmän ohjelmointikielenä on valtaosin Java. Lisäksi käytetään vähäisessä määrin SQL- ja XML-kieliä. Järjestelmän toteutukseen vaadittaneen todennäköisimmän arvion mukaan yhteensä noin 8000 riviä koodia (LOC). Tämä jakautuu järjestelmän kolmitasoarkkitehtuurin mukaan seuraavasti: Käyttöliittymä (sis. tietoliikenteen) 5000 loc Sovelluslogiikka (sis. aikataulun laskevan algoritmin) 1000 loc Tietokanta (sis. käyttöliittymän kanssa keskustelun) 2000 loc Arvio perustuu järjestelmän syötteiden, tulosteiden, kyselyiden, tiedostojen lukumäärän ja ulkoisten liittymien lukumäärän perusteella laskettujen toimintopisteiden lukumäärään. Kutakin toimintopistettä on arvioitu sen tekemisen vaikeuden perusteella asteikolla yksinkertainen, keskinkertainen ja vaikea. Syötteet (7 kpl) Omien tietojen muokkaaminen Aikataulun laatiminen Ryhmän perustaminen Salasanan tilaus Aikataulun muokkaus Rekisteröityminen Kirjautuminen Keskinkertainen Keskinkertainen Vaikea

Tulosteet (10 kpl) Kaikkien sopivuudet ok Osallistujien lkm > aikojen lkm Rekisteröityminen OK Salasana lähetetty Virhe kirjautumisessa Virhe rekisteröitymisessä Virhe salasanan tilauksessa Valmiin aikataulun lähetys Kutsun lähetys Valmis aikataulu Kyselyt (5 kpl) Aikojen lkm Osallistujien lkm Current date Kutsujan ryhmät ja aikataulut Osallistujan ryhmät ja aikataulut Tiedostojen lukumäärä (10 kpl) Konfiguraatiotiedosto Muita aputiedostoja Tietokanta Keskinkertainen Vaikea Vaikea Keskinkertainen Keskinkertainen Ulkoisten liittymien lukumäärä (2 kpl) Sähköpostin lähetys (SMTP) CSV-import Keskinkertainen Toteutuksen vaikeus helppo *k Normaali *k Vaikea *k pisteet Syötteitä 4 3 2 4 1 6 26 Tulosteita 8 4 1 5 2 7 51 Kyselyjä 3 3 2 4 0 6 17 Tiedostoja 10 7 0 10 0 15 70 Liittymiä 1 5 1 7 0 10 12 FP 26 6 3 Σ (N) 176 Lisäksi otetaan huomioon erilaisia ohjelmistolle asetettuja vaatimuksia, jotka painotetaan asteikolla 0-5 (0 - ei koskaan, 1 - harvoin, 2 - toisinaan, 3 - keskimääräisesti, 4 - merkittävästi, 5 - oleellisesti) sen mukaan kuinka merkityksellisiä ne ovat tämän Tanja-projektin osalta. Sovituskertoimet 4

1 Vikasietoisuus 1 2 Tietoliikenneominaisuudet 2 3 Hajautettu laskenta 0 4 Suorituskykyvaatimukset 1 5 Käytettävän koneympäristön kuormitus 1 6 Interaktiivinen tietojen syöttö 5 7 Interaktiivinen tietojen syötön synkronointi 5 8 Interaktiivinen tietojen päivitys 5 9 Syötteiden, tulosteiden, tiedostojen tai kyselyiden monimutkaisuus 2 10 Ohjelman toiminnan monimutkaisuus 2 11 Koodin uudelleenkäytettävyys 1 12 Ohjelmiston muunnoksen ja sennuksen sisällyttäminen suunnitelmaan 4 13 Ohjelman toimivuus eri organisaatioissa 0 14 Sovelluksen käyttäjäystävällisyys 5 Yhteensä 34 Toimintopisteiden ja sovituskertoimien pisteet sijoitetaan kaavaan FP = N*(0,65+0,01*S(Fi)) = 176*(0,65+0,01*34)=174 Tähän saatuun lukuun sovelletaan LOC:in ja FP:n välisistä suhteista tehtyjä arvioita. Koska Tanja-järjestelmä toteutetaan Java-kielellä käytetään kertoimena optimistista arvioita FP/LOC = 40, todennäköistä arvioita FP/LOC = 50 ja konservatiivista arvioita FP/LOC = 55. Tällöin saadaan seuraavat arvioit ohjelmiston yhteenlasketulle koodirivimäärälle: FP/LOC=40 => 7000 loc FP/LOC=50 => 7800 loc FP/LOC=55 => 9600 loc 5 5 Aikataulu Tässä kappaleessa kuvataan, miten projekti jakaantuu pienempiin osiin. Aikataulua laadittaessa on otettu huomioon ennalta päätetyt eri tuotosten eräpäivät, seurantakokousten päivämäärät, projektiryhmän jäsenten poissaolot sekä kaikille projekteille yhteinen demotilaisuus. 5.1 Päättyneet vaiheet Aloitus 16.5-23.5 Vaatimusmäärittely 23.5-30.6

6 5.2 Käynnissä olevat vaiheet Projektisuunnitelma 13.6 - Suunnittelu 13.6-1.8 Toteutus 30.6-19.8 5.3 Alkavat vaiheet Testaus 11.7-26.8 (MYÖHÄSSÄ, piti alkaa 4.7) Viimeistely 20.8-31.8 5.4 Tulevia määräpäiviä Projektisuunnitelma v2 11.7 Suunnitteludokumentti 1.8 Asennusohje 22.8 Käyttöohje 22.8 Toteutusdokumentti 26.8 Testausdokumentti 26.8 Loppuraportti 29.8 6 Työskentelytavat 6.1 Kokouskäytäntö Kokousten puheenjohtajana toimii projektipäällikkö tai hänen poissaollessaan varaprojektipäällikkö. Lähtökohtaisesti jokaisen olisi hyvä olla paikalla jokaisessa kokouksessa. Projektin puitteissa saattaa olla tarvetta tai estymisen johdosta olla pakko, pitää kokouksia vajaalla ryhmällä. Mikäli etukäteen tiedetään, että joitain ryhmäläisiä ei tarvita, ei heidän läsnäolonsa ole pakollista. Tällaisissa tapauksissa kyseisiä ryhmäläisiä informoidaan riittävän ajoissa. Kokoukset pyritään pitämään kahdesti viikolla ennalta sovittuina aikoina seuraavasti: 27.6-7.7: ma klo 14:15 ja to klo 9:15 11.7-21.7: ei kokouksia 25.7-25.8: ma klo 14:15 ja to klo 9:15 29.8-1.9: ei sovittu

7 6.1.1 Koollekutsuminen Kokoukset kutsutaan koolle sähköpostitse riittävän ajoissa ennen kokousta että ryhmäläiset ja ohjaaja saavat riittävästi aikaa perehtyä kokouksessa käsiteltäviin asioihin. 6.1.2 Asialista Ryhmäläiset voivat ehdottaa aiheita kokousten asialistalle ilmoittamalle niistä projektipäällikölle riittävän aikaisin. Kokousten asialista hyväksytään aina kokousten alussa, joten asioiden saaminen käsittelyyn on mahdollista asialistan julkaisemisenkin jälkeen. Lisäksi kokouksissa pyritään käytettävän ajan puitteissa käsittelemään muut esille tulevat asiat. 6.1.3 Pöytäkirjat Kaikista viikkokokouksista pidetään pöytäkirjaa. Pöytäkirjaa pidetään myös asiakaspalavereista ja muista ryhmän sisäisistä muodollista kokouksista kuten esimerkiksi katselmuksista. Pöytäkirjaa pitää aina kunkin kokouksen alussa valittava sihteeri, joka kirjaa muistiin kokouksen tapahtumat ja siinä päätetyt asiat. Ryhmä pyrkii kierrättämään tehtävää niin että kaikki toimisivat vuorollaan sihteerinä. Pöytäkirjan tulee olla valmis seuraavaan kokoukseen mennessä, jolloin se tarkastetaan. 6.1.4 Poissaolot Kokousista poissaoloista ilmoitetaan muulle ryhmälle sähköpostitse tai viikkokokouksessa mahdollisimman aikaisin etukäteen. Yllättävistä poissaoloista ilmoitetaan mahdollisuuksien mukaan tekstiviestillä jollekin toiselle ryhmän jäsenelle. Tarpeen vaatiessa kokous voidaan aloittaa tietämättä onko ryhmän jäsen myöhässä vai kokonaan poissa. Tällöin asialistaa pyritään muokkaamaan siten, että ryhmän jäsenen poissaolosta koituu mahdollisimman vähän haittaa. 6.1.5 Myöhästymiset Kokouksista myöhästymiset kirjataan kokouspöytäkirjaan. Samoin toimitaan mikäli joku joutuu poistumaan kokouksesta ennen sen päättymistä. 6.2 Projektin tehtävät 6.2.1 Aloitus Ohjelmistotuotantoprojektin ensimmäinen ryhmätapaaminen ja ensimmäisen viikon järjestäytyminen. Tapaamisen kutsui sähköpostitse koolle ohjaaja Kimmo Simola. Tapaami-

sessa sovittiin projektiryhmän sisäisestä roolijaosta, alustavasta aikataulusta sekä suunniteltiin tulevaa. 8 6.2.2 Projektisuunnitelma Projektisuunnitelmassa kuvataan ryhmän työtavat ja -käytännöt. Tämän dokumentin alustavan version tekeminen on projektipäällikön vastuulla. Vedosta työstettäessä muu projektiryhmä osallistuu projektisuunnitelman työstämiseen ja vedoksen valmistuttua lukukierrokseen. Projektisuunnitelmaa päivitetään projektin edetessä. 6.2.3 Käyttöliittymäsuunnittelu Käyttöliittymäsuunnittelussa toimitaan läheisessä yhteistyössä asiakkaan kanssa. Käyttöliittymäprotoja käytettiin apuna myös vaatimusmäärittelyssä ja suunnittelu valmistui yhdessä vaatimusdokumentin loppuunsaattamisen yhteydessä viikolla 25. Käyttöliittymäsuunnittelun tuloksena syntyi käyttöliittymäsuunnitelma sellaisella tarkkuudella ja kattavuudella, että se kelpaa toteutuksen ohjeeksi. Tämä tarkoittaa sitä, että kaikki oleelliset näytöt on kuvattu niihin liittyvän toiminnan, mahdollisten poikkeuksien ja virhetilanteiden sekä käyttötapausten osalta. Dokumentoidut käyttötapaukset toimivat moduuli- ja integraatiotestauksen sekä validoinnin pohjana. Suunnitellun ja toteutettavan käyttöliittymän eroavuudet kirjataan suunnitteludokumenttiin. 6.2.4 Vaatimusmäärittely Vaatimusmäärittelyssä selvitettiin asiakkaan ohjelmistolle asettamat vaatimukset ja tuotettiin niiden pohjalta vaatimusdokumentti. Vaatimusten kartuttamisessa käytiin yhdessä asiakkaan kanssa läpikäytyjä käyttötapauksia ja niiden perusteella suunniteltuja käyttöliittymäprotoja. Vaatimusdokumentti lähetettiin asiakkaalle katselmoitavaksi 20.6. Asiakkaan toivomien korjausten ja muutosten hyväksymisen jälkeen vaatimusdokumentti jäädytettiin 30.6 ryhmän viikkopalaverissa. Mikäli vaatimusdokumenttia on jäädyttämisen jälkeen muutettava, neuvotellaan muutoksista asiakkaan kanssa. Poikkeuksena tähän käytäntöön ovat vähäiset ulko- tai kieliasuun liittyvät korjaukset kuten sellaiset kirjoitusvirheiden korjaukset, jotka eivät oleellisesti vaikuta vaatimuksiin tai vaatimusten yksiselitteisyyteen, ristiriidattomuuten tai kattavuuteen. 6.2.5 Suunnittelu Toteutuksen suunnittelu muilta kuin käyttöliittymän osalta alkaa vaatimusmäärittelyn loppuvaiheessa kun järjestelmän toiminnan kannalta keskeisen vaatimukset on selvitetty ja analysoitu. Suunnittelu tehdään vaatimusdokumenttiin kirjattujen pohjalta eli ohjelmistolle suunnitellaan ainaostaan sellaisia toimintoja, jotka on eksplisiittisesti määritelty. Suunnittelun tuloksena syntyy suunnitteludokumentti, johon kirjataan riittävän tarkalla tasol-

la ohjeet toteutusta varten. Tähän sisältyy tarvittavista tekniikoista, ohjelmointikielistä ja laitteistoista päättäminen. Käytettävät algoritmit ja keskeiset metodit kuvataan tarkasti, tarvittaessa pseudo-koodilla, ja luokista piirretään tarkat luokkakaaviot. Tässä vaiheessa suunnitellaan ainoastaan sellaiset järjestelmän ominaisuudet, jotka tullaan myös toteuttamaan. 9 6.2.6 Toteutus Toteutusvaiheen kriittinen tuotos on asiakkaan tilaama ohjelmisto. Kurssin lyhyydestä johtuen toteutus tullaan rajaamaan vaatimusmäärittelyä pienemmäksi. Toteutus tehdään siten, että yksittäiset ohjelman osata ovat vaihedettavissa ohjelmiston toiminnan muuttumatta. Toteutuksessa pidetään huoli, ettei suunniteltua laajempia riippuvuuksia pääse syntymään. 6.2.7 Testaus Testataan ohjelmaa toteutuksen edetessä alkuun yksikkötestein ja sitten suurempia osia kerrallaan. Toteutuksen aikaisen testauksen tarkoituksena on pitää huoli, ettei ohjelmistoon pääse syntymyään virheitä, joiden korjaaminen vaatii huomattavan suuren työn ja jotka huomataan myöhäisessä vaiheessa. Testaus suoritetaan suunnitteludokumentissan kuvattavalla tavalla. Tämä testaus-vaiheen konkreettinen tuotos on testausdokumentti, jossa on kuvataan suoritetut testit ja niiden tulokset.

7 Riskianalyysi 10 1.0 28.5.2005 Ensimmäinen versio 1.1 29.5.2005 Lisätty luku "Viisi suurinta riskiä" 1.2 30.5.2005 Lisätty riskit R2.3, R3.3, R4.4, R4.5. Uudelleenarvioitu top-5. 1.21 31.5.2005 Lisätty R3.4. Stilisointeja. 1.5 8.6.2005 Siirretty LaTeX-muotoon. Säädetty riskiä R2.2. 1.51 23.6.2005 Arvioitu riskien top-5. Riskianalyysissä kartoitetaan projektiin liittyvät riskit, niiden vakavuus ja niiden todennäköisyys. Lisäksi kuvaillaan toimintatavat riskien ennaltaehkäisemiseksi ja toimintaa riskien toteutuessa. Riskit esitellään seuraavalla tavalla: Riski N.N: Riskin nimi ja kuvaus Asteikolla vähäinen=1, mahdollinen=2, todennäköinen=3, lähes varma=4. Asteikoilla vähäpätöinen=1, siedettävä=2, vakava=3, tuhoisa=4. Millä toimilla riskin toteutumista voidaan torjua. Millä tavalla toimimalla riskin toteutumisen seurauksia ennakolta pienentää, jos se kuitenkin toteutuu. Varasuunnitelma eli millä tavoilla toteutuneesta riskistä toivutaan sen realisoitumisen jälkeen ts. miten projekti jatkuu riskin toteutumisen jälkeen. Riskianalyysissä ei erikseen tarkastella kovin epätodennäköisiä riskejä kuten ohjaajan tai asiakkaan vaihtuminen, pitkät laitoksen tietojärjestelmien käyttökatkot tai useamman projektiryhmäläisen poistuminen. 7.1 Viisi suurinta riskiä Seuraavassa taulukossa on esitetty viisi vakavimmaksi koettua riskiä. Näiden riskien muodostamia uhkia seurataan projektin viikkokokouksissa. R2.2 Aikatauluongelmat Kokemattoman projektiryhmän vakio-ongelmia. R2.1 Työmäärien virhearviot Kokemattoman projektiryhmän vakio-ongelmia. R2.3 Projektin laatuongelmat Syntyy helposti lumivyöry projektin edetessä. R3.1 Toteutuksen ongelmat Teknisiin ongelmiin menee helposti paljon aikaa. R1.3 Tiedonkulkuongelmat Kokemattoman projektiryhmän vakio-ongelmia.

11 7.2 Projektiryhmän riskit Riski R1.1: Ryhmän jäsenen pitkäaikainen sairastuminen tai poissaolo. Mahdollinen. Siedettävä ->Vakava (loppuvaiheissa). Tiedotetaan poissaoloista ajoissa. Huolehditaan omasta ja projektiryhmän terveydestä. Jaetaan tehtävät tasaisesti projektiryhmän jäsenille. Pidetään ryhmä tietoisena omasta työtilanteesta. Pyydetään apua muulta ryhmältä ennen kuin tilanne muuttuu kriittiseksi. Kartoitetaan jäljellä olevat resurssit ja jaetaan tehtävät uudelleen jäljellä olevien projektiryhmän jäsenien kesken. Riski R1.2: Riski R1.3.1: Ryhmän jäsen keskeyttää. Vähäinen. Huolehditaan siitä, että kaikilla on riittävästi mielekästä tehtävävää eikä toisaalta kukaan tule ylikuormitetuksi. Varaudutaan aikataulujen lipsumiseen. Ryhmän jäsenet pyrkivät varaamaan riittävästi aikaa projektille. Kriittisten tehtävien varavastuutus. Kattava ja järjestelmällinen dokumentointi myös luonnosten ja epäonnistuneiden osaratkaisujen osalta, jotta jäljelle jäävä ryhmä ei käytä aikaa jo kerran hylätyn ratkaisun tutkimiseen. Siirretään keskeyttäneen jäsenen tehtävät varamiehille. Jaetaan tehtävät uudelleen. Jos jäljelle jäävien työmäärä kasvaa liian suureksi, neuvotellaan asiakkaan kanssa alemman prioriteetin ominaisuuksien karsimisesta toteutettavasta tuotteesta. Tiedonkulkuongelmat ryhmän sisällä. Todennäköinen. Siedettävä. Riittävä projektitapaamisten määrä. Runsas sähköpostin käyttö. Kattava ja järjestelmällinen dokumentointi. Myös epävirallisten tapaamisien sekä yksilötason havaintojen johtopäätösten tiedottaminen muulle ryhmälle. Otetaan opiksi. Vaikutukset on arvioitava tapauskohtaisesti.

12 Riski R1.3.2: Tiedonkulkuongelmat ryhmän ja asiakkaan välillä. Todennäköinen. Siedettävä. Riittävä asiakastapaamisten määrä. Täsmällinen dokumentointi. Kattava ja järjestelmällinen dokumentointi. Tuotosten läpikäynti asiakkaan kanssa. Lisätään yhteydenpitoa asiakkaan kanssa, jos ongelmia esiintyy. Riski R1.4: Ristiriidat tehtävien valintojen suhteen. Mahdollinen. Siedettävä. Riittävä ajatustenvaihto ja mielipiteiden ilmaisu. Vaihtoehtoihin tutustuminen. Joustava suhtautuminen projektiin. Projektipäällikkö tekee päätöksen, johon muut tyytyvät. 7.3 Projektityön riskit Riski R2.1: Riski R2.2: Työmäärät arvioidaan liian pieniksi Mahdollinen. Toteutettavan ohjelmiston vaatimusten analysointi. Tarvittavien työmäärien tilastointi ja seuranta. Jaettujen tehtävien valmistumisen seuranta. Huolellinen tuntimäärien tilastointi. Joustovarojen hyödyntäminen. Vaatimusten uudelleenpriorisointi. Projekti ei pysy aikataulussa. Todennäköinen. Tarkistuspisteiden käyttö. Työn huolellinen suunnittelu ja toteutumisen seuranta viikkokokouksissa. Suunnitelman jatkuva päivittäminen toteutuneiden työmäärien perusteella. Jaettujen tehtävien valmistumisen seuranta. Huolellinen tuntimäärien tilastointi. Henkilökohtaisten aikatauluongelmien julkituominen. Joustovarojen hyödyntäminen. Vaatimusten uudelleenpriorisointi.

13 Riski R2.3: Projektityön laatu on heikko: vaatimusmäärittely, toteutus, testaus tms. epäonnistuu. Mahdollinen. Tuotosten tarkastukset. Ulkopuolisen konsultin käyttö tärkeimpien tuotosten arvioinnissa. Tehtyjen päätösten perusteluiden dokumentointi: miksi päädyttiin tekemään asiat tietyllä tavalla. Tällä tiedolla pystytään jäljittämään kohta, jossa prosessi alkoi epäonnistua. Paluu prosessissa taaksepäin. Onnistuneiden osien tunnistaminen ja uudelleenkäyttö. 7.4 Tekniikan ja työkalujen riskit Riski R3.1: Riski R3.2: Valitut ydintekniikat (esim. käyttöliittymä) osoittautuvat liian vaikeiksi toteuttaa. Mahdollinen. Testataan ja kokeillaan vaikeimpia tekniikoita ja komponentteja. Rakennetaan ohjelmiston ydintoiminnat tekniikkariippumattomiksi. Siirrytään käyttämään yksinkertaisempia ratkaisuja. Valitut työvälineet (kehitysympäristö, versionhallinta) osoittautuvat liian vaikeiksi. Vähäinen. Vähäpätöinen. Välineisiin tutustuminen testiaineistoilla. Omaehtoinen opiskelu. Ei sitouduta välineisiin. Vaihdetaan työkaluja yksinkertaisemmiksi. Keskitetään ongelmallisten työkalujen käyttö niitä parhaiten osaaville ryhmän jäsenille. Riski R3.3: Yhteensopivuusongelmat hajautetussa ratkaisussa (Java/JavaScript-ongelmat). Mahdollinen. Pitäydytään konservatiivisissa ratkaisuissa, jotka toimivat vaatimattomilla laitteilla. Eristetään koodista vaativampia ominaisuuksia edellyttävät osat. Yksinkertaistetaan käyttöliittymää.

14 Riski R3.4: Kehitettävä ohjelma tai sen osat tuhoutuvat. Mahdollinen. Vähäinen. Versionhallinnan säntillinen käyttö. Ryhmähakemisto on laitoksen varmuuskopioinnin piirissä. Versionhallinnan säntillinen käyttö. Palataan versionhallintajärjestelmän avulla edelliseen versioon. 7.5 Toteutettavaan ohjelmistoon liittyvät riskit Riski R4.1: Riski R4.2: Muuttuvat vaatimukset. Todennäköinen. Siedettävä. Asiakkaan pitäminen ajan tasalla projektin etenemisestä ja mahdollisista vaikeuksista. Vaatimusten jäädyttäminen. Ohjelmiston selkeät sisäiset rajapinnnat. Vaatimusten priorisointi uusien tarpeiden mukaan. Liian suuret vaatimukset. Vähäinen. Selkeä vaatimussuunnittelu asiakkaan kanssa. Selkeä vaatimusten priorisointi, jotta ongelmatilanteessa voidaan valita mitä vaatimuksia toteutetaan. Pienennetään toteutettavien vaatimusten joukkoa prioriteettien mukaan. Riski R4.3: Toteuttava ohjelmisto ei toimi ollenkaan tai toimii huonosti. Vähäinen. Ydintekniikoiden ja algoritmien kokeilu prototyyppisovelluksilla. Suorityskyvyn kuormitustestaus. Prototyyppien käyttö. Toimivien komponenttien eristäminen jatkoprojektin käyttöön.

15 Riski R4.4: Riski R4.5: Asiakas ei ole tyytyväinen toimitettuun ohjelmistoon. Vähäinen. Pyritään ymmärtämään ja dokumentoimaan selvästi asiakkaan tuotteelle asettamat vaatimukset. Pidetään kiinteää yhteyttä asiakkaaseen väärinkäsitysten havaitsemiseksi mahdollisimman aikaisin. Toimitetaan asiakkaalle riittävästi tuotoksia, joiden avulla hän pysyy selvillä tuotteen ominaisuuksista - kysytään myös aktiivisesti asiakkaalta kommentteja tuotoksista. Muutetaan tuotetta tarvittavilta osin ja neuvotellaan tarvittaessa asiakkaan kanssa muutoksista projektiaikatauluun. Toteuttava ohjelmisto ei ole laadukas. Vähäinen. Pyritään ymmärtämään ja dokumentoimaan tarkasti asiakkaan tuotteelle asettamat laadulliset ominaisuudet (nopeus, käytön helppous, virheettömyys). Mietitään testitapaukset huolella ja testataan tuotetta riittävästi kaikissa tuotannon vaiheissa. Ensisijaisesti pyritään muuttamaan tuotetta asiakkaan toiveita vastaavaksi. Mikäli aikataulu muodostuu ongelmaksi, niin pyritään neuvottelemaan asiakkaan kanssa aikataulumuutoksista.