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
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

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:

Vasemmassa taulukossa on työmääräarviot ja oikenpoleisessa työhön kulunut aika, jonka jäsenet täyttävät työn edistyessä.
Vaihe Anu Ilari
Joni Tiina Yhteensä Anu Ilari
Joni Tiina Yhteensä
Määrittely ja
perehtyminen

- Suunnittelu
- Raportit
10

7
3
10

4
6
8

2
6
10

4
6
38

17
21
19

12
7
10

3
7
10

3
7
14

7
7
53

25
28
Esitutkimus
- Tehtävän ana-
lysointi
- Työkalujen
opettelu
- Raportit
20
6

6

8
40
25

5

10
21
7

8

6
27
16

2

9
108
54

21

33
20
12

0

8
39
30

0

9
29
10

10

9
22
12

1

9
110
64

11

35
Järjestelmä-
suunnittelu

- Luokkamallit
- Tietovirta-
kaaviot
- Valmiiden kir-
jastojen opettelu
- Raportit
40

10
14

6

10
45

10
15

10

10
39

11
14

4

10
41

14
10

2

15
161

45
53

22

45
??

?
?

?

?
47

8
17

0

11
??

?
?

?

?
??

?
?

?

?
??

?
?

?

?
Prototyyppin
toteutus

- Käyttöliittymä
- Toteutus
- Testaus
- Demonstraatio
- Raportit
94

2
60
20
2
10
55

3
20
20
2
10
62

25
20
15
2
10
81

2
45
20
4
10
292

32
145
75
10
40
??

?
?
?
?
?
??

?
?
?
?
?
??

?
?
?
?
?
??

?
?
?
?
?
??

?
?
?
?
?
Lopullinen versio
- Toteutus
- Testaus
- Raportit
40
15
15
10
40
15
15
10
45
25
10
10
35
15
10
10
160
70
50
40
??
?
?
?
??
?
?
?
??
?
?
?
??
?
?
?
??
?
?
?
Järjestelmän
luovutus

- Demonstraatio
- Loppuraportti
12

2
10
12

2
10
10

2
8
12

2
10
46

8
38
??

?
?
??

?
?
??

?
?
??

?
?
??

?
?
Yhteensä 216 202 185 199 802 ??? ??? ??? ??? ???

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