Projektisuunnitelma

v2.1
27.10.95

Tehtävän kuvaus

Ryhmän tehtävänjako on seuraava:

Projektipäällikkö Anu Vilvala

Mikrokontrolleriekspertti Tiina Kumento Visualisti Joni Suominen Mekaniikkaekspertti Ilari Lehti Kaikkien yhteisvastuulla on testaus ja järjestelmän suunnittelu.

Projektin tavoitteena on UNIX-ympäristöön tehtävä mikrokontrolleriohjatun auton simulaattori. Toteutus tapahtuu pääosin C++-kielellä. Ohjelma koostuu seuraavista pääkokonaisuuksista:

Projektin vaiheistus

Projektin aikataulu voi muuttua, jos yhteistyökumppanimme Tampereella eivät pysty määrittelemään tai valmistamaan autoon liittyviä mekaanisia järjestelmiä riittävän nopeasti. Yritämme aluksi suunnitella ja rakentaa osat, jotka ovat heistä riippumattomia sekä rakentaa helposti muutettaviksi osat, jotka voivat muuttua meistä riippumattomista syistä.

Ohjelmatyöprojekti jakaantuu kuuteen vaiheeseen:

  1. MP Määrittely ja perehtyminen 18.9.95 - 2.10.95
  2. ET Esitutkimus 2.10.95 - 30.10.95
  3. JS Järjestelmäsuunnittelu 30.10.95 - 4.12.95
  4. PT Prototyyppijärjestelmän toteutus 4.12.95 - 4.3.96
  5. LT Lopullisen järjestelmän toteutus 4.3.96 - 22.4.96
  6. DE Projektin luovutus demonstraatioineen 22.4.96 - 8.5.96

Määrittely- ja perehtymisvaihe (MP)

Tehtävät:

  1. Projektiryhmän muodostaminen ja organisointi
  2. Tehtävänantoon ja kohdejärjestelmään perehtyminen
  3. Projektin suunnittelu:

Raportit:

  1. Ryhmän kokoonpano (ilmoittautumislomake H2)
  2. Projektisuunnitelma

Esitutkimusvaihe (ET)

Ongelmaan liittyvät toiminnot, tiedot ja niiden väliset riippuvuudet selvitetään ja kuvataan. Pidetään tiiviisti yhteyttä projektin ohjaajiin ja yhteistyökumppaneihin Tampereella. Opetellaan käyttämään tarvittavia työkaluja.

Tehtävät:

  1. Tehtävän analysointi ja toimintojen rajaus ja toimenpiteiden selvitys:
  2. Järjestelmäsuunnittelun työsuunnitelman teko

Raportit:

  1. Esitutkimusraportti
  2. Järjestelmäsuunittelun työsuunnitelma
  3. Edistymisraportti

Järjestelmäsuunnittelu (JS)

Kuvataan järjestelmän ulkoinen toiminta ja sen tekniset ratkaisut siten, että sen toteuttaminen on mahdollista. Se perustuu esitutkimuksessa selvitettyhin järjestelmän toiminnallisiin vaatimuksiin ja teknisiin menetelmiin.

Yhteiset tehtävät:

  1. tehdään OMT- ja ER-luokkamallit, tietovirtakaaviot ja moduulijakokaaviot
  2. suunnitellaan järjestelmän:
  3. järjestelmän validointi suhteessa esitutkimuksessa asetettuihin tavoitteisiin
  4. käyttöohjeen kirjoittaminen
Erilliset tehtävät

Raportit:

  1. Järjestelmäkäsikirjan luonnos
  2. Prototyypin toteutusvaiheen työsuunnitelma
  3. Edistymisraportti

Prototyypin toteutusvaihe (PT)

Tehtävät:
  1. Keskeisten osien ohjelmointi ja testaus, käyttöliittymön mahdollita grafiikkaa ei vielä vaadita, autosta pitää olla yksinkertainen fysikaalinen malli
  2. Järjestelmäkäsikirjan tarkentaminen
  3. Käyttöohjeen tarkentaminen
  4. Prototyyppijärjestelmän demonstraatio
Koodaus tehdään ennalta sovitun tyylin mukaisesti. Tarkka työsuunnitelma työtuntiarvioineen on tehty Excel-taulukkoon.

Raportit:

  1. Tarkennettu järjestelmäkäsikirja
  2. Lopullisen toteutuksen työsuunnitelma
  3. Edistymisraportti

Lopullisen järjestelmän toteutus (LT)

Loppuvaiheessa suunniteltu järjestelmä rakennetaan kaikin puolin täyteen laajuuteensa, sen toimivuus testataan, ja sen dokumentointi hiotaan lopulliseen muotoonsa.

Tehtävät:

  1. Puuttuvien järjestelmäosien toteutus
  2. Järjestelmätestaus
  3. Järjestelmäkäsikirjan viimeistely
  4. Käyttöohjeen viimeistely
  5. Lopullisen järjestelmän demonstraatio ja luovutus

Raportit:

  1. Lopullinen järjestelmäkäsikirja
Tarkka työsuunnitelma

Järjestelmän luovutus (DE)

Lopetusvaihe koostuu ennen kaikkea järjestelmän demonstraatiosta, jossa valmis ohjelmisto luovutetaan "tilaajalle" ja osoitetaan sen toimivuus. Samalla luovutetaan myös projektin loppuraportti.

Tehtävät:

  1. Demonstraation valmistelu, mm. testiaineiston tuottaminen.
  2. Loppuraportin laatiminen.

Raportit:

  1. Projektin loppuraportti

Resurssi- ja aikasuunnitelma

Alustava arvio projektin implementaation laajuudesta on asiantuntijalausunnon (projektin ohjaaja H. Arppe) mukaan 20 000 riviä koodia. Resursseja on kullakin jäsenellä tehtävään varattuna huomattava määrä.

Työnjako:

Työmääräarviot ovat edellä kunkin vaiheen osana ja työhön kuluneet ajat ovat nähtävänä edistymisraporttien liitteinä.

Riskitekijät

Tampereelta voidaan saada speksit liian myöhään. Ratkaisuna ongelmaan määrätään aikaraja, jonka jälkeen määritellään itse puuttuvat speksit ja toteutetaan ohjelma sen mukaan.

Jos alussa hyväksytään liian laajat vaatimukset, saattaa olla, että työtä ei saada ajoissa valmiiksi halutulla tavalla toimivaa järjestelmää. Ratkaisuna on tiukka EI-linja.

Muut työt tai kurssit vaativat enemmän aikaa kuin alussa arvioitiin. Yritetään suunnitella aikataulu tarpeeksi väljäksi.

Menetelmien määrittely ja työnjako

CASE-välineeksi harkitsimme loistavaa Software through Pictures -CASE-työkalua. Versionhallintatyökaluna on RCS. Koodin sisäinen kommentointi suoritetaan suomeksi. C++-kääntäjänä käytetään g++:aa. Varsinainen dokumentointi tapahtuu WWW-ympäristöön. Aina uuden vaiheen häämöttäessä ryhmän jäsenen tulee määritellä vaiheeseen liittyvien tehtävien työmääräarviot. Jokainen ryhmäläinen pitää itse kirjaa tehtäväkohtaisesti projektiin käyttämästään ajasta. Virheiden raportointi suoritetaan HTML-lomakkeella. Sellaiset virheet, joita ei pysty heti korjaamaan tai jotka kuuluvat jonkun muun työsarkaan, on raportoitava.

Virheistä on raportoitava seuraavat asiat:

Ryhmän sisäinen tiedonkulku hoidetaan sähköpostitse käyttäjätunnukselle mysse@snakemail.hut.fi.

Kirjallisuuslähteinä käytetään seuraavia teoksia:

Projektin ohjaussuunnitelma

Projektin ohjaajien kanssa on palaveri keskiviikkoisin klo. 13-14, ainakin Heikki Arppe on tällöin paikalla. Ryhmä pitää myös sisäisiä palavereja kerran viikossa. Viikon kuluessa ryhmän jäsenet työskentelevät itsenäisesti. Erityisesti esitutkimus- ja järjestelmäsuunnitteluvaiheet vaativat paljon yhteistyötä ryhmältä. Koodausvaiheessa tehdään työtä lähinnä itsenäisesti. Valvontapisteet vastaavat vaihejaon päättymispäiviä.

Projektin sisäiset valvontapisteet:
Ryhmä kokoontuu ainakin kerran viikossa, jolloin tarkistetaan edistyminen ja koordinoidaan toimintaa.
12.2. on oltava valmiina prototyypin eri osajärjestelmät, jonka jälkeen ne kootaan yhteen ja testataan.
1.4. on oltava valmiina lopullisen järjestelmän eri osajärjestelmät, jonka jälkeen ne kootaan yhteen ja testataan.
Ohjaajan kanssa käydään läpi suunnitelmat mahdollisimman varhaisessa vaiheessa, jolloin projektin laatu saadaan pysymään hyvänä.

Eri vaiheiden edistymisraportit

Esitutkimuksen edistymisraportti

Järjestelmäsuunnittelun edistymisraportti

Prototyyppivaiheen edistymisraportti