Projektisuunnitelma

Ohjelmistotuotantoprojekti TAHKO (syksy 2001)

Heikki Hiltunen

Tero Kallio

Anu Leponiemi

Piia Porvali

Petri Savolainen

Janne Savukoski


Sisällys

1. Projektin käytössä olevat resurssit
1.1. Työntekijät
1.2. Laitteistot ja ohjelmistot
2. Organisaatio
2.1. Ryhmän rakenne
3. Laatu
3.1. Laadunvalvonta
4. Tavoitteet
4.1. Tavoitteet
5. Riskienhallinta
5.1. Riskialueet
5.2. Miten riskeistä selvitään
6. Projektin koon arviointi
6.1. Function points -arvio Tahko-projektille
6.2. Kompeksisuuskerroin
7. Aikataulu
7.1. Aikataulusuunnitelma

Luku 1. Projektin käytössä olevat resurssit

1.1. Työntekijät

Projektiryhmään kuuluu 6 henkilöä. Jokaisen työntekijän työmäärä projektiin on 20h/vk. Projektin kesto on 14 vk:a, joten kokonaistyömäärä on 10,5 henkilötyökuukautta. Eri henkilöiden kokemus ja osaaminen on listattu alla.

  • Heikki Hiltunen
    Servletit, RMI, JDBC, PDF:n sisältö, Web-kauppasofta, web-käyttöliittymät
  • Tero Kallio
    käyttöliittymät, C++, HTML, JavaScript, XML, Perl
  • Anu Leponiemi
    käyttöliittymät, tietokannat, JDBC, Java, XML, HTML, CGI
  • Piia Porvali
    JavaScript, web-sovellukset (C, Perl, PHP), tietokannan käyttö,käyttöliittymät
  • Petri Savolainen
    mobiilipalvelualusta CORBA:n päälle, C++ ja Java, JDBC, Windows (MFC)
  • Janne Savukoski
    Swing, JDBC, XML:n käsittely

1.2. Laitteistot ja ohjelmistot

Laitokselta varataan kaksi konetta ryhmää varten. Lisäksi jokaisella on käytössä oma kone kotona. Tarvitaan lähinnä Java-kehitystyökalu, joka saadaan tarvittaessa ilmaiseksi, jos joltakin sellainen vielä puuttuu. Versionhallintaan käytetään WinCVS ohjelmaa. Lisäksi käytössä on UML ja XML työkaluja. Käytettävä tietokanta päätetään myöhemmin.

Luku 2. Organisaatio

2.1. Ryhmän rakenne

Ryhmän rakenteeksi on valittu demokraattinen hajautettu. Mallia on kuitenkin muokattu hiukan ryhmän jäsenten toiveiden mukaan niin, että Petri on valittu toimimaan puheenjohtajana. Tarvittaessa varapuheenjohtajana toimii Janne. Äänestettäessä kaikilla on yksi ääni. Jos äänestystulos menee tasan puheenjohtajan ääni ratkaisee. Lisäksi eri tehtäviin jaetaan vastuualueita ryhmän jäsenille, kaikki ryhmän jäsenet ovat kuitenkin yhtä paljon vastuussa kokonaisuudesta ja kaikilla on samanlaiset oikeudet tehdä projektiin ja ohjelmistoon liittyviä ehdotuksia.

Ryhmän kokouksissa Anu toimii sihteerinä. Puheenjohtaja tekee kokouksiin esityslistat. Sihteeri laatii projektikokokousten pöytäkirjat ja lähettää ne sähköpostitse kaikille mahdollisimman pian kokouksen jälkeen tai antaa ne Terolle kotisivuille laitettaviksi.

Luku 3. Laatu

3.1. Laadunvalvonta

Aikataulussa pysymistä seurataan tarkasti ja viivästymiset pyritään saamaan ajantasalle mahdollisimman nopeasti karsimalla ohjelmiston ominaisuuksia tai mahdollisuuksien mukaan tehostamalla ajankäyttöä tai ohjaamaan sitä enemmän kiireellisiin tehtäviin. Poikkeustilanteissa noudatetaan riskinhallintasuunnitelmaa ja pyritään pitämään laatu hyvänä.

Laatua valvotaan FTR-kokouksilla. Näitä kokouksia pidetään mahdollisuuksien mukaan. Kaikki kriittiset ohjelmapätkät ja dokumentit pyritään käymään läpi ja hyväksymään näissä kokouksissa. Kaikkien ei ole välttämätöntä olla paikalla kaikissa näissä kokouksissa vaan jo puoli ryhmää eli 3 henkilöä voi joko hyväksyä tai hylätä jonkin ohjelmapätkän tai dokumentin.

Luku 4. Tavoitteet

4.1. Tavoitteet

Projektin tavoitteena on suunnitella ja toteuttaa tarjouskonfiguraattori, jolla voidaan tietokannassa olevien tuote-, asiakas- ja myyjätietojen pohjalta muodostaa tarjouksia esimerkiksi PDF- ja HTML-muodossa. Tuotetietojen tulee olla hierarkisesti järjestetty, niin että tuotteilla voi olla riippuvuussuhteita toisiinsa. Tietokannan käsittelytyökalujen toteutus ei kuulu projektin piiriin.

Sovelluksella tulee pystyä myös tallettamaan luodut tarjoukset tietokantaan. Sovelluksen tulisi olla mahdollisimman geneerinen, esimerkiksi sen käyttöliittymä ja tarjouksen muoto määritellään XML-kielellä ja ne ovat näin ollen helposti muokattavissa tarpeiden mukaan. Sovellusta käyttävät lähinnä myyjät ja sen tulisi soveltua kannettavissa tietokoneissa käytettäväksi.

Sovelluksesta pyritään tekemään mahdollisimman toimiva ja sitä tulee pystyä tarvittaessa myöhemmin myös laajentamaan.

Luku 5. Riskienhallinta

5.1. Riskialueet

Projektin loppuun saattamiselle suurimman uhan aiheuttaa työntekijöiden sairastuminen tai kurssin kesken jättäminen. Toinen suuri uhka on se, että ohjelmistosta yritetään tehdä liian suuri, jotta se pystytään annetussa ajassa saattamaan loppuun.

5.2. Miten riskeistä selvitään

Poissaoloihin varaudutaan jakamalla projektin osa-alueet siten, ettei yhden ihmisen tilapäinen poissaolo pysäytä projektin etenemistä vaan silloin voidaan tehdä muita osia.

Jos joku jättää kurssin kesken tulisi kaikille tehtäville olla olemassa myös varahenkilö. Kesken jättäneen henkilön tekemät tehtävät voidaan näin jakaa jollekin muulle eikä pääse syntymään tilannetta, jossa jollekin osa-alueelle ei olisi tekijää.

Ohjelmiston koon paisuminen liian suureksi pyritään estämään tarkalla suunnittelulla ja jakamalla projekti pieniin osiin, joiden koon laskeminen on helpompaa. Näin pysytään karsimaan jo suunnitteluvaiheessa projektia, jos alkaa näyttää siltä, että aika ei riitä koko tuotteen valmiiksi saamiseksi.

Jos toteutusvaiheessa huomataan jonkin osa-alueen vievän enemmän aikaa kuin on laskettu voidaan tuotteesta tarvittaessa karsia ominaisuuksia. Tällaiseen tilanteeseen ei pitäisi hyvän suunnittelun jälkeen olla tarvetta.

Luku 6. Projektin koon arviointi

6.1. Function points -arvio Tahko-projektille

Käyttäjän antamien syötteiden lukumäärä. Tähän lasketaan kaikki sellaiset syötteet, jotka tuottavat uutta dataa. Käyttäjä valitsee omat tietonsa, tuotteen ja asiakkaan. =3

-Tarjous tallentuu varastoon; se siis lakettaneen uudeksi dataksi.

Käyttäjän saamien tulosteiden lukumäärä. Tähän lasketaan kaikki sellaiset tulosteet, jotka antavat käyttäjälle sovelluskohtaista tietoa. Tähän lasketaan siis kaikki raportit, näytöt, virheilmoitukset jne=9

-html, pdf ja mail ja noin 6 käyttöliittymäsivua

Käyttäjän järjestelmään antamien kyselyiden lukumäärä. Kyselyksi lasketaan sellainen syöte, jonka tuloksena saadaan jokin käyttäjän tuloste. Käyttäjän antamista syötteistä taas syntyy uutta dataa järjestelmään.=3

-Käyttäjä valitsee omat tietonsa, tuotteen ja asiakkaan.

Käsiteltävien tiedostojen lukumäärä. Jokainen looginen tiedosto lasketaan tähän. Jos käytetään tietokantaa, lasketaan relaatioita.=8

-Tuoterelaatio, asiakasrelaatio, myyjärelaatio, käyttöliittymäpohjarelaatio, ja varastorelaatio sekä html, pdf ja mail -tiedostot .

Ulkoisten liittymien lukumäärä. Tähän lasketaan liittymät oheislaitteisiin, käyttöjärjestelmään ja muihin järjestelmiin.=2

-Graafinen käyttöliittymä sekä tiotakantayhteys.

6.2. Kompeksisuuskerroin

Jokaiseen kysymykseen voi vastata a) Ei koskaan (No influence) (0p), b) Harvoin (Incidental) (1p), c) Toisinaan (Moderate) (2p), d) Keskimääräisesti (Average) (3p), e) Merkittävästi (Significant) (4p) ja f) Oleellisesti (Essential) (5p).

--------------------------------------------------------------------------------

  1. Onko järjestelmä vikasietoinen? Tarvitaanko luotettavaa tietojen varmistus- ja palautusmenettelyä?=0
  2. Tarvitaanko tietoliikenneominaisuuksia?=0
  3. Onko hajautettua prosessinhallintaa?=0
  4. Onko suorituskyky kriittinen elementti?=0
  5. Käytetäänkö järjestelmää olemassaolevassa raskassa käytössä olevassa koneympäristössä?=3
  6. Tarvitaanko interaktiivista tietojen syöttöä suoritusaikana?=5
  7. Täytyykö interaktiivinen tietojen syöttö synkronoida usealle näytölle tai operaatiolle?=2
  8. Päivitetäänkö tiedostoja interaktiivisesti suoritusaikana?=5
  9. Ovatko syötteet, tulosteet, tiedostot tai kyselyt monimutkaisia? =3
  10. Onko ohjelman toiminta monimutkaista?=3
  11. Onko koodi tarkoitettu uudelleenkäytettäväksi?=4
  12. Ovatko ohjelmiston muunnokset ja installointi mukana suunnitelmassa? =3
  13. Onko ohjelmisto suunniteltu toimivaksi useina installaatioina eri organisaatioissa?=3
  14. Onko sovellus suunniteltu käyttäjäystävälliseksi? =5

Kompleksisuukerroin on siis 36

Taulu 6.1. Lasketaan function points -arvo (valittu kerroin merkattu tähdellä)

Mitattu attribuuttiMääräxYksinkertainenKeskimääräinenVaikea Tulos
Syötteitä3x34 *6=12
Tulosteita9x45 *7=45
Kyselyitä3x34 *6=12
Tiedostoja8x7 *1015=56
Ulkoisia liittymiä2x57 *10=14
Yhteissumma     =139


FP = yhteissumma * (0,65 + 0,01 * S(Fi)), missä S(Fi) on kompleksisuuskerroin  

FP=139*(0.65+0,01*36)=140,39

Arviot projektin koolle empiirisillä malleilla laskettuna
E = -13,39+0,0545*FP (Albrecht and Gaffney)
E=7.65 henkilötyökuukautta
 
E = 60,62*7,728*10-8*FP3 (Kemerer) 
E=12,96 henkilötyökuukautta

E = 585,7+15,12*FP (Matson, Barnett, and Mellichamp, E = työtunteja) 
E= 2708,397 h= 16,93 henkilötyökuukautta

keskiarvo edellisistä = 12.5 henkilötyökuukautta

Luku 7. Aikataulu

7.1. Aikataulusuunnitelma