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ä.
TRAKLA-järjestelmä koostuu kolmesta osajärjestelmästä.
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.
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.
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 |---| | --------- -------------- ------------ ------------ ---------
Tutustutaan olemassa olevaan dokumentaatioon ja järjestelmään karkealla tasolla. Selvitetään suullisesti todennäköisimmät ongelmakohdat resurssien kohdistamiseksi. Tehdään alustava projektisuunnitelma.
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.
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
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.
Lopullinen toteutus -vaiheessa on tarkoitus tehdä järjestelmä valmiiksi ja viimeistellä järjestelmän dokumentaatio.
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.
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.
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:
IA | IJ | MH/TJ | ET | Yhteensä | |
PS | 21 | 19 | 20 | 21 | 81 |
JS | 100 | 100 | 100 | 100 | 400 |
PT | 90 | 90 | 90 | 90 | 360 |
LT | 100 | 100 | 100 | 100 | 400 |
Yhteensä | 311 | 309 | 310 | 311 | 1241 |
IA | IJ | MH/TJ | ET | Yhteensä | Toteutunut | Erotus | |
Tehtävän kartoitus | 7 | 5 | 6 | 7 | 25 | 25 | 0 |
Alustavan projektisuunnitelman teko | 14 | 14 | 14 | 14 | 56 | 56 | 0 |
Yhteensä | 21 | 19 | 20 | 21 | 81 | 81 | 0 |
IA | IJ | TJ | ET | Yhteensä | Toteutunut | Erotus | |
Projektinhallinta | - | 10 | - | - | 10 | 10 | -5 |
Käyttokokemusten kerääminen | 2 | 2 | 2 | 2 | 8 | 8 | 0 |
Tietokantaratkaisujen selvitys | 30 | 5 | 5 | 30 | 70 | 90 | 20 |
Serveriratkaisujen selvitys | 5 | 25 | 5 | 5 | 40 | 30 | -10 |
Tehtävien generoinnin ja tarkastuksen selvitys | 5 | 5 | 30 | 5 | 45 | 38 | -7 |
Harjoittelumoodin lisäys: määrittely ja suunnittelu | 11 | 2 | - | - | 13 | 9 | -4 |
Automaattinen palaute: määrittely ja suunnittelu | - | 2 | - | 11 | 13 | 8 | -4 |
Uusien tehtävien lisäys: määrittely ja suunnittelu | - | 2 | 11 | - | 13 | 13 | 0 |
Nykyjärjestelmän korjausten toteutuksen suunnittelu | 15 | 10 | 15 | 15 | 55 | 30 | -25 |
Prototyypin testauksen suunnittelu | 10 | 5 | 10 | 10 | 35 | 22 | -13 |
Edistymisraportin teko | - | 5 | - | - | 5 | 3 | -2 |
Yhteensä | 100 | 100 | 100 | 100 | 400 | 361 | -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
IA | IJ | TJ | ET | Yhteensä | Toteutunut | Erotus | |
Viikkopalaverit | 6 | 6 | 6 | 6 | 24 | 24 | 0 |
Projektinhallinta | - | 6 | - | - | 6 | 6 | 0 |
Tietokannan käsittelyfunktioiden toteutus | 58 | 2 | - | 58 | 118 | 150 | 32 |
Serveri-ohjelmien takastus, korjaus ja muuttaminen | - | 30 | - | - | 30 | 34 | 4 |
Tehtävien generointi-ohjelmien tarkastus, korjaus ja muuttaminen | - | 2 | 26 | -- | 28 | 20 | -8 |
Tehtävien trakastus-ohjelmien tarkastus, korjaus ja muuttaminen | - | 2 | 26 | - | 28 | 16 | -12 |
Hamming-koodaus-ohjelman toteutus | - | 2 | 10 | - | 12 | 12 | 0 |
Harjoittelumoodi; toteutuksen suunnittelu | 6 | 2 | - | 2 | 10 | 13 | 3 |
Automaattinen palaute; toteutuksen suunnittelu | 2 | 2 | - | 6 | 10 | 11 | 1 |
Muiden uusien tehtävien toteutuksen suunnittelu | - | 2 | 4 | - | 6 | 0 | -10 |
Assistentin käyttöliittymän korjausten suunnittelu | - | 7 | - | - | 7 | 7 | 1 |
Prototyyppijärjestelmän testaus | 8 | 8 | 8 | 8 | 32 | 51 | 19 |
Järjestelmäkäsikirjan tarkennus | 8 | 12 | 8 | 8 | 36 | 36 | 0 |
Projektisuunnitelman täydentäminen | 2 | 2 | 2 | 2 | 8 | 2 | 0 |
Edistymisraportin teko | - | 5 | - | - | 5 | 5 | 0 |
Yhteensä | 90 | 90 | 90 | 90 | 360 | 391 | 31 |
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
IA | IJ | TJ | ET | Yhteensä | Toteutunut | Erotus | |
Viikkopalaverit | 8 | 8 | 8 | 8 | 32 | ||
Projektinhallinta | - | 8 | - | - | 8 | ||
Loppujen tietokantamoduulien toteutus | 25 | - | - | 25 | 50 | ||
Loppujen tietokantamoduulien testaus | 10 | 3 | - | 10 | 23 | ||
Serveri; uusien tietokantamoduulien lisäys ja testaus | - | 10 | - | - | 10 | ||
Tehtävien generointi; uusien tietokantamoduulien lisäys | - | 3 | 10 | - | 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 | - | 3 | 20 | - | 23 | ||
Tehtävien tarkastus; testaus | - | - | 6 | - | 6 | ||
Harjoittelumoodin; toteutus | 15 | 3 | - | - | 18 | ||
Harjoittelumoodin; testaus | 5 | - | - | - | 5 | ||
Automaattisen palautteen; toteutus | - | 3 | - | 15 | 18 | ||
Automaattisen palautteen; testaus | - | - | - | 5 | 5 | ||
Uudet tehtävät; toteutus | - | 3 | 20 | - | 23 | ||
Uudet tehtävät; testaus | - | - | 15 | - | 15 | ||
Assistentin käyttöliittymän toteutus ja testaus | - | 10 | - | - | 10 | ||
Järjestelmätestaus | 10 | 10 | 10 | 10 | 40 | ||
Järjestelmätestaus alphassa | 10 | 10 | 10 | 10 | 40 | ||
Demonstraation suunnittelu | 10 | 10 | 10 | 10 | 40 | ||
Järjestelmäkäsikirjan viimeistely | 7 | 11 | 7 | 7 | 32 | ||
Projektin loppuraportin teko | - | 5 | - | - | 5 | ||
Yhteensä | 100 | 100 | 100 | 100 | 400 |
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
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.
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.
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.
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.
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.
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.