Tik-76.115 Projektisuunnitelma

Tik-76.115 Projektisuunnitelma


Aiheen nimi: TRAKLA-järjestelmän kehittäminen


Sisällysluettelo

1. Johdanto
1.1 Yleiskuvaus projektista
1.2 Projektin tavoitteet
1.1 Projektiryhmä
2. Projektin vaiheistus
2.1 Projektisuunnittelu
2.2 Järjestelmäsuunnittelu
2.3 Prototyypin toteutus
2.4 Lopullinen toteutus
2.5 Jälkihoito
3. Resurssi- ja aikasuunnitelma
3.1 Koko projekti
3.2 Projektisuunnittelu
3.3 Järjestelmäsuunnittelu
3.4 Prototyypin toteutus
3.5 Lopullinen toteutus
3.6 Kustannusarvio
4. Työmenetelmät ja työnjako
4.1 Työkalut ja laitteistot
4.2 Dokumentointimenetelmät
4.3 Työmenetelmät
4.4 Riskien hallinta
4.5 Jäsenten roolit ja tehtävänjako
4.6 Kirjallisuustviitteet
5. Ohjaussuunnitelma
5.1 Projektin tilan seuranta
5.2 Aikataulu

1. Johdanto

1.1 Yleiskuvaus projektista

Aihe-esittely

Projekti on kurssilla Tik-76.115 Ohjelmatyö suoritettava harjoitustehtävä. Projektin aiheena on kurssin Tik-76.122 Tietorakenteet ja algoritmit kotitehtävien jakeluun, palautukseen ja pisteytykseen liittyvän ohjelmiston päivittäminen. Keväällä 1996 kurssilla oli ongelmia aiemmin hyvin toimineen ohjelmiston kanssa. Ainoa muuttunut tekijä oli laiteympäristö: vanhat Sonyt vaihdettiin SiliconGraphicseihin, jotka mitä ilmeisemmin vaativat virheettömämpää koodia. Koodin korjauksen yhteydessä on tarkoitus lisätä ohjelmaan siitä puuttuvia, käyttömukavuutta lisääviä piirteitä.

Nykyjärjestelmä

TRAKLA-järjestelmä koostuu kolmesta osajärjestelmästä.

1.2. Projektin tavoite

Projektin tavoitteena on:

Lisäksi ohjelmiston korjaamisen yhteydessä varaudutaan mahdollisuuksien mukaan siihen, että kotitehtävien jakelu ja palautus siirtyvät WWW:n kautta tehtäviksi. Loppuraportissa esitetään arvio siitä, miten ohjelma on siirrettävissä WWW:hen.

Lopputuloksiin kuuluu tärkeänä osana nykyistä parempi dokumentaatio.

1.3. Projektiryhmä

Projektiryhmään kuuluvat kiinteästi alla luetellut henkilöt. Konsultteina ja asiakkaan edustajina auttavat tarvittaessa kevään 1996 Tik-76.122 Tietorakenteet ja algoritmit -kurssin assistentit Pekka Hippeläinen ja Mikko Kiviharju sekä ensi vuonna kurssista vastaava Lauri Malmi.

Rooli: Asiakas
Nimi: Olli Yli-Harja
Osoite: Y234
Puhelin: 90 - 451 3227
Email: yliharja@cs.hut.fi

Rooli: Ohjaaja
Nimi: Juha Hyvönen
Osoite: Soidintie 12 B 13, 00700 Helsinki
Puhelin: 90 - 347 4793
Email: juha.hyvonen@hut.fi

Rooli: Suunnittelija
Nimi: Irmeli Auvinen
Osoite: Jahtimestarintie 16, 02940 Espoo
Puhelin: 90 - 509 2410
Email: iauvine@cc.hut.fi

Rooli: Suunnittelija
Nimi: Tapio Joutti
Osoite: Meteorinkatu 3 B 28, 02210 Espoo
Puhelin: 90 - 885 258
Email: tjoutti@cc.hut.fi

Rooli: Projektipäällikkö
Nimi: Irja Jokelin
Osoite: Hakaniemenranta 30 A 23, 00530 Helsinki
Puhelin: 90 - 738 206
Email: ijokelin@niksula.hut.fi

Rooli: Suunnittelija
Nimi: Eeva Tikanoja
Osoite: Venuksenkuja 5 B 16, 01480 Vantaa
Puhelin: 90 - 872 7723
Email: tikanoja@cc.hut.fi

2. Projektin vaiheistus

Projektin eteneminen eri vaiheineen on esitetty seuraavassa kaaviossa. Vaiheiden prototyypin toteutus ja lopullisen järjestelmän toteutus osalta lohkokaaviota tarkennetaan kun ko. vaiheiden tehtävät on saatu määriteltyä



 ---------   --------------   -------------   ------------   ---------
 |Aloitus|   |Järjestelmä-|   |Prototyypin|   |Lopullinen|   |Lopetus|
 |       |---|suunnittelu |---|toteutus   |---|toteutus  |---|       |
 ---------   --------------   ------------    ------------   ---------

2.1. Projektisuunnittelu

Tutustutaan olemassa olevaan dokumentaatioon ja järjestelmään karkealla tasolla. Selvitetään suullisesti todennäköisimmät ongelmakohdat resurssien kohdistamiseksi. Tehdään alustava projektisuunnitelma.

2.2. Järjestelmäsuunnittelu

Nykyjärjestelmän analysoinnin ja korjausten toteutuksen suunnittelun osatehtävät sisältävät seuraavat toimenpiteet:

Ohjelmistoon tehdään seuraavat lisäykset:

Vaiheen loppudokumentit ovat korjausten, muutosten ja lisäysten toteutussuunnitelmat, prototyypin testaussuunnitelma, järjestelmäkäsikirjan luonnos, päivitetty projektisuunnitelma sekä edistymisraportti.

Vanhan järjestelmän muutosten selvittäminen ja suunnittelu on suoritettava ennen uusien toimintojen määrittelyä ja toteutussuunnitelmaa.

Järjestelmäsuunnittelun työmääräarviot osatehtävittäin ja sijoittuminen kalenteriin on esitetty kohdassa 3.3 Järjestelmäsuunnittelu 10.6-3.7.1996.

2.3. Prototyypin toteutus

Prototyypin toteutusvaiheessa toteutetaan TRAKLA-järjestelmän uudelleen määritelty tietokanta ja muutetaan muiden osajärjestelmien rajapinnat uuden tiedonhallintaosan mukaiseksi. Tarkistetaan ja korjataan serverin ja tehtävien ohjelmakoodit. Toteutetaan uusista tehtävistä hamming-koodaus ja tehdään muiden uusien piirteiden toteutuksen suunnittelu. Tehdään assitentin käyttöliitymään kuuluva kurssin perustamisen toteutuksen suunnittelu. Suunnitellaan lopullisen järjestelmän testaus sekä korjataan ja laaditaan tarvittavat dokumentit

LOHKOKAAVIO

Prototyypin toteutusvaiheessa suoritetaan seuraavat tehtävät:

Prototyypin toteutuksen työmääräarviot osatehtävittäin ja sijoittuminen kalenteriin on esitetty kohdassa 3.4 Prototyypin toteutus 4.7.1996-5.8.1996.

2.4. Lopullinen toteutus

Lopullinen toteutus -vaiheessa on tarkoitus tehdä järjestelmä valmiiksi ja viimeistellä järjestelmän dokumentaatio.

LOHKOKAAVIO

Lopullinen toteutus -vaiheessa suoritetaan seuraavat tehtävät:

Lopullisen toteutuksen työmääräarviot osatehtävittäin ja sijoittuminen kalenteriin on esitetty kohdassa 3.5 Lopullinen toteutus 6.8.1996-16.9.1996.

2.5. Jälkihoito

Esitellään mahdolliset projektin jatkosuunnitelmat kurssin päättymisen jälkeen. Jatkosuunnitelmia voisivat olla kurssin muuttaminen WWW:tä käyttäväksi ja kurssin korjauspalvelun myymisen muille oppilaitoksille aiheuttamat muutokset.

3. Resurssi- ja aikasuunnitelma

3.1. Koko projekti

Jokainen ryhmän jäsen on varautunut käyttämään viikoittain 20-30 tuntia projektiin kesä-, heinä- ja elokuun aikana. Kokonaistuntimäärä on siten noin 1200.

Alla olevissa taulukoissa on esitetty kuhunkin työvaiheeseen ja -tehtävään arvio tarvittavista kokonaisresursseista. Prototyyppijärjestelmän ja lopullisen järjestelmän toteutuksen osalta tehtäväkohtaiset aika-arviot täydennetään järjestelmäsuunnittelu-vaiheen aikana. Viikkopalavereihin on laskettu jokaiselle 2 tuntia viikossa.

Käytetyt lyhenteet:

Irmeli Auvinen (IA)
Marjut Honkasalo (MH) (lopettanut 31.5.1996)
Tapio Joutti (TJ) (aloittanut 3.6.1996)
Irja Jokelin (IJ)
Eeva Tikanoja (ET)
IA IJMH/TJETYhteensä
PS2119202181
JS100100100100400
PT90909090360
LT100100100100400
Yhteensä3113093103111241

3.2. Projektisuunnittelu 26.4.1996-29.5.1996

IA IJMH/TJETYhteensäToteutunutErotus
Tehtävän kartoitus756725250
Alustavan projektisuunnitelman teko1414141456560
Yhteensä2119202181810

3.3. Järjestelmäsuunnittelu 10.6.1996-3.7.1996

IA IJTJETYhteensäToteutunutErotus
Projektinhallinta-10--1010-5
Käyttokokemusten kerääminen2222880
Tietokantaratkaisujen selvitys305530709020
Serveriratkaisujen selvitys525554030-10
Tehtävien generoinnin ja tarkastuksen selvitys553054538-7
Harjoittelumoodin lisäys: määrittely ja suunnittelu112--139-4
Automaattinen palaute: määrittely ja suunnittelu-2-11138-4
Uusien tehtävien lisäys: määrittely ja suunnittelu-211-13130
Nykyjärjestelmän korjausten toteutuksen suunnittelu151015155530-25
Prototyypin testauksen suunnittelu10510103522-13
Edistymisraportin teko-5--53-2
Yhteensä100100100100400361-39

Alla olevassa taulukossa tehtävät on sijoitettu taulukkoon, jossa on kuhunkin tehtävään käytetyt tunnit viikoittain.


 
Tehtävät	                    vk 24  vk 25  vk 26	 vk 27
----------------------------------------------------------------
Projektihallinta	                2      2      2	     3
Käyttökokemusten keräys	                4      4		
Tietokantaratkaisujen selvitys	       25     35      5	     5
Serveriratkaisujen selvitys	       15     15      5	     5
Tehtävien selvitys	               20     15      5      5	
Harjoittelumoodin lisäys			     13	
Automaattinen palaute			             13	
Uusien tehtävien lisäys			             13	
Prototyypin testaussuunnitelma			     25     10	
Järjestelmäkäsikirja	                5     15     15     10
Projektisuunnitelman täydentäminen           	      4      4
Edistymisraportin teko                                       5

3.4. Prototyypin toteutus 4.7.1996-5.8.1996

-
IA IJTJETYhteensäToteutunutErotus
Viikkopalaverit666624240
Projektinhallinta-6--660
Tietokannan käsittelyfunktioiden toteutus582-5811815032
Serveri-ohjelmien takastus, korjaus ja muuttaminen-30--30344
Tehtävien generointi-ohjelmien tarkastus, korjaus ja muuttaminen-226-2820-8
Tehtävien trakastus-ohjelmien tarkastus, korjaus ja muuttaminen-226-2816-12
Hamming-koodaus-ohjelman toteutus-210-12120
Harjoittelumoodi; toteutuksen suunnittelu62-210133
Automaattinen palaute; toteutuksen suunnittelu22-610111
Muiden uusien tehtävien toteutuksen suunnittelu-24-60-10
Assistentin käyttöliittymän korjausten suunnittelu-7--771
Prototyyppijärjestelmän testaus8888325119
Järjestelmäkäsikirjan tarkennus8128836360
Projektisuunnitelman täydentäminen2222820
Edistymisraportin teko-5--550
Yhteensä9090909036039131

Alla olevassa taulukossa tehtävät on sijoitettu taulukkoon, jossa on kuhunkin tehtävään käytetyt tunnit viikoittain.


 
Tehtävät	                    vk 27  vk 28  vk 29	 vk 30 vk 31 
--------------------------------------------------------------------
Projektihallinta	                       1      1	     2     2
Tietokanna käsittelyfunktioiden
toteutus                               10     50     30     28   
Serveriohjelmien tarkastus,
korjaus ja muuttaminen                  5     20      5
Tehtävien generointi-ohjelmat           5     20      3
Tehtävien tarkastus-ohjelmat                   5     20      3	
Hamming-koodaus-ohjelma                                     12
Harjoittelumoodi/suunnittelu                   2      2      2     4	
Automaattinen palalaute/suunnitt.              2      2      2     4	
Uudet tehtävät/suunnittelu                                   4     2
Protyyppijärjestelmän testaus                               16    16
Järjestelmäkäsikirja	                4      4      6      8    14
Projektisuunnitelman täydentäminen                    2      2     4
Edistymisraportin teko                                             3

3.5. Lopullinen toteutus 6.8.1996-16.9.1996

IA IJTJETYhteensäToteutunutErotus
Viikkopalaverit888832  
Projektinhallinta-8--8  
Loppujen tietokantamoduulien toteutus25--2550  
Loppujen tietokantamoduulien testaus103-1023  
Serveri; uusien tietokantamoduulien lisäys ja testaus-10--10  
Tehtävien generointi; uusien tietokantamoduulien lisäys-310-13  
Tehtävien generointi; kurssin aloituspäivän lisäys henliökohtaisten tehtävien generointiin--10-10  
Tehtävien generointi; testaus--5-5  
Tehtävien tarkastus; uusien tietokantamoduulien lisäys-320-23  
Tehtävien tarkastus; testaus--6-6  
Harjoittelumoodin; toteutus153--18  
Harjoittelumoodin; testaus5---5  
Automaattisen palautteen; toteutus-3-1518  
Automaattisen palautteen; testaus---55  
Uudet tehtävät; toteutus-320-23  
Uudet tehtävät; testaus--15-15  
Assistentin käyttöliittymän toteutus ja testaus-10--10  
Järjestelmätestaus1010101040  
Järjestelmätestaus alphassa1010101040  
Demonstraation suunnittelu1010101040  
Järjestelmäkäsikirjan viimeistely7117732  
Projektin loppuraportin teko-5--5  
Yhteensä100100100100400  

Alla olevassa taulukossa tehtävät on sijoitettu taulukkoon, jossa on kuhunkin tehtävään käytetyt tunnit viikoittain.



Tehtävät                            vk 33   vk 34  vk 35  vk 36 vk 37 
---------------------------------------------------------------------
Viikkopalaverit                         1       1      2      2    2
Projektihallinta                        1       2      2      2    1
Loppujen tietokantamoduulien
toteutus                               30      20
Loppujen tietokantamoduulien
testaus                                        10     13
Serveri; uusien tietokanta-
moduulien lisäys ja testaus                    10
Tehtävien generointi; uusien
tietokantamoduulien lisäys                     10      3
Tehtävien generointi; kurssin 
aloituspäivän lisäys henliökoh-
taisten tehtävien generointiin                        10
Tehtävien generointi;
testaus                                                       5
Tehtävien tarkastus; uusien
tietokantamoduulien lisäys                     10     10
Tehtävien generointi;
testaus                                                3      3
Harjoittelumoodin;
toteutus                                        8     10
Harjoittelumoodin;
testaus                                                5
Automaattisen
palautteen; toteutus                            8     10
Automaattisen
palautteen; testaus                                    5
Uudet tehtävät; toteutus               23      15
Uudet tehtävät; testaus
Assistentin käyttöliittymän 
toteutus ja testaus                    10                   
Järjestelmätestaus                                            30    10
Järjestelmätestaus                                            20    20
alphassa
Demonstraation
suunnittelu                                            10     10    20
Järjestelmäkäsikirjan
viimeistely                                      7      7      7    11
Loppuraportin teko                                                   5

3.6. Kustannusarvio

Kustannusarvion pohjautuu tuntiveloituksiin, joissa projektipäällikön tuntiveloitus on 250 mk/h ja suunnittelijoiden 200 mk/h. Työvaiheittain kustannukset muodostuvat seuraavasti:

   projektisuunnitelma     17 150 mk
   järjestelmäsuunnittelu  85 000 mk
   prototyypin toteutus    76 500 mk
   lopullinen toteutus     85 000 mk
   ---------------------------------
   yhteensä               263 650 mk

Laitteistot ja ohjelmakehitystyökalut ovat jo olemassa, eivätkä aiheuta kustannuksia.

4. Työmenetelmät ja työnjako

4.1. Työkalut ja laitteistot

Käytettävistä työkaluista päätetään järjestelmäsuunnitteluvaiheessa. Ohjelmointikielenä on C ja/tai C++ sekä mahdollisesti jokin tulkkaava kieli. Versionhallintaa varten tutkitaan jonkun versionhallintaohjelmiston käyttöönottoa.

Ohjelmatyö tehdään Niksulan SiliconGraphics-koneissa Unix-ympäristössä. Mahdollisesti ohjelmistoa testataan myös alphoissa.

4.2. Dokumentointimenetelmät

Palautettavat raportit tehdään kurssin mallipohjalle.

Dokumentit kirjoitetaan joko Emacsilla html-helper-moodissa suoraan html-muotoon tai Microsoft Wordilla (versio 6.0), minkä jälkeen se konvertoidaan html-muotoon. Er-kaavio ja tietovirtakaaviot piirretään STP:llä ja muut kaaviot, mikäli mahdollista, CorelDraw 4.0:lla.
Palautettavat dokumentit toimitetaan projektipäällikölle vähintään kaksi päivää ennen lopullista palautusta. Dokumentoinnin kielenä on suomi. Dokumentit julkaistaan WWW-sivuilla.

Projektin sisäiset muistiot, mm. palaverien pöytäkirjat, tallennetaan ryhmän yhteisen ohtrakla-hakemiston muistiot-hakemistoon.

Ohjelmakoodi kommentoidaan hyvin, erityisesti tehtyjen muutosten osalta. Vanhaan koodiin lisätään puuttuvat kommentit. Jokaisen funktion toiminta selostetaan kommentilla.

4.3. Työmenetelmät

Jokainen jäsen merkitsee päivittäin käyttämänsä työtunnit tehtäväkohtaisesti ohtrakla-hakemistossa olevaan tuntiseuranta-hakemistoon. Projektipäällikkö kerää yhteen käytetyt tunnit, vertaa niitä resurssisuunnitelmiin ja raportoi niistä.

Järjestelmäsuunnitteluvaiheen analysoinnin yhteydessä selvitetään vanhan koodin virheet ja raportoidaan ne ohtrakla-hakemiston virhetiedostoon. Toteutusvaiheessa havaitut virheet kirjataan metriikkaohjeen mukaisesti käyttäen siellä esitettyä virhetyyppiluetteloa.

Ryhmän sisäinen tiedonkulku hoidetaan sähköpostitse. Ryhmän yhteinen tunnus on ohtrakla@niksula.hut.fi. Ryhmän jäsenet näkevät toisiaan myös päivittäin, joten tieto kulkee hyvin.

4.4. Riskien hallinta

Korjattavan järjestelmän nykyinen dokumentointi on puutteellista ja vanhentunutta. Tehtyjen muutosten kirjauksista ei ole mitään tietoa. Järjestelmästä puuttuu versiohallinta ja hakemistohierarkia on sekava. Nämä aiheuttavat selvän riskin: ohjelmiston analysoinnin, virheiden havaitsemisen ja korjaustöiden vaatiman ajan arviointi on vaikeaa. Työajan seurannalla pyritään mahdollisimman varhaisessa vaiheessa huomaamaan ajankäyttöön liittyvät ongelmat ja suoritetaan tehtävämäärien uudelleenarviointi ja resurssien allokointi.

Versionhallinnan puutteellisuudesta johtuen riskinä on toimenpiteiden kohdistuminen vääriin ohjelmaversioihin. Oikea tuotantoversio käytettyine tiedostoineen pyritään selvittämään mahdollisimman tarkkaan kurssin Tik-76.122 Tietorakenteet ja algoritmit assistenttien ja Niksulan ylläpidon kanssa. Koko ohjelmisto käännetään ja perustetaan nykyisen järjestelmän testiympäristö tietokantoineen järjestelmän analysointia, korjauksia ja lisäyksiä varten.

4.5. Jäsenten roolit ja tehtävänjako

4.6. Kirjallisuusviitteet

5. Ohjaussuunnitelma

5.1. Projektin tilan seuranta

Ryhmä pitää tiistaisin sisäisen viikkopalaverin, jossa seurataan projektin etenemistä tarkistamalla edellisen viikon työn tulokset. Samalla sovitaan seuraavan viikon aikana tehtävistä asioista. Ohjaajan kanssa pidetään palavereita tarpeen vaatiessa ja aina ennen palautusta.

5.2. Aikataulu