SerTi
Sovellusprojekti

Susanna Blomqvist
Antti Korhonen
Heikki Mylläri
Pekka Pakari

Projektisuunnitelma
Versio 1.1

20.3.2003

Jyväskylän Yliopisto
Tietotekniikan laitos

SerTi-projekti
Projektiryhmä	Susanna Blomqvist (SBl)	sumablom@cc.jyu.fi
Antti Korhonen (AKo)	akorhon@cc.jyu.fi
Heikki Mylläri (HMy)		kavelija@cc.jyu.fi
Pekka Pakari (PPa)		pepakari@cc.jyu.fi

Tilaaja			Stresstech Oy
			Lasse Suominen		lasse.suominen@stresstech.fi
			Tapio Hirvelä			tapio.hirvela@stresstech.fi
			Ilkka Urtamo			ilkka.urtamo@stresstech.de
			Aapo Tamminen		aapo.tamminen@stresstech.fi

Vastaava ohjaaja	Jukka-Pekka Santanen	santanen@mit.jyu.fi

Tekninen ohjaaja	Rainer Koreasalo		rakorea@cc.jyu.fi

Kotisivu		http://kotka.it.jyu.fi/serti/
Postituslista		serti@korppi.jyu.fi
Huone			Agora AgC224.1
Puhelin		014 – 260 4967

Tämä dokumentti
Nimi			SerTi-projektin projektisuunnitelma

Tekijä(t)		Heikki Mylläri

Tiivistelmä
SerTi-projekti toteuttaa Stresstech Oy:lle servomoottorin ohjauslogiikan testaussovelluksen. Projektisuunnitelmassa kuvataan projektin taustoja, tavoitteita ja käytettävissä olevat resurssit. Lisäksi siinä esitetään arvio projektiaikataulusta, suunniteltu työnjako, ennustettavissa olevat riskitekijät ja suunnitellut keinot niiden hallintaan.

Versiohistoria
Versio	Pvm	Tekijä(t)	Kuvaus	
0.1	18.2.2003	HMy	Ensimmäinen raakaversio	
0.2	27.2.2003	HMy	Täydennetty raakaversio	
0.3	28.2.2003	HMy	Ensimmäinen julkaisuversio	
0.4	5.3.2003	HMy	Muotoilukorjauksia ja täydennyksiä	
0.5	10.3.2003	HMy	Viime hetken korjauksia	
1.0	13.3.2003	HMy, SBl	Valmis versio	
1.1	20.3.2003	HMy	Viimeistelty valmis versio	

Sisällysluettelo

1. Johdanto
2. Termit
3. Taustaa ja tavoitteet
4. Organisaatio ja resurssit
5. Projektin tehtävät, työnjako ja käytännöt
6. Aikataulu
7. Riskitekijät ja niiden hallinta
8. Yhteenveto

1. Johdanto

SerTi-projekti on Jyväskylän yliopiston tietotekniikan Sovellusprojekti. Se suunnittelee ja toteuttaa Stresstech Oy:lle servomoottorin ohjauslogiikan testaussovelluksen.

Stresstech Oy on kehittänyt StressLogic-logiikan mm. XY-pöydissä käytettävien servomoottorien ohjaukseen. Logiikkaa voidaan ohjata RS232-liitännän kautta annetuilla komennoilla, mutta tähän tarkoitukseen ei ole kehitetty erillistä sovellusta. SerTi-projekti toteuttaa selkeän ja helppokäyttöisen Windows-pohjaisen testaussovelluksen ko. logiikalle.

Projektiin liittyvät dokumentit tullaan arkistoimaan projektikansioon. Projektisuunnitelma luonnostelee projektin suunnitellun läpiviennin keinoineen. Vaatimusmäärittely määrittelee toteutettavalta sovellukselta vaaditut ominaisuudet. Sovellussuunnitelma määrittelee sovelluksen sisäisen rakenteen ja toiminnan. Lisäksi projektiryhmä laatii projektisopimuksen, pöytäkirjat lähes viikottaisista palavereista ja projekti- ja sovellusraportit.

Luvussa 2 määritellään keskeisimmät projektiin liittyvät termit. Luvussa 3 kuvataan projektin taustoja ja tavoitteita sekä sovelluksen että oppimisen kannalta. Luku 4 määrittelee projektin toteuttamiseen varatut materiaaliset ja henkilöresurssit. Luku 5 tekee selkoa henkilöresurssien tulevasta käytöstä projektin aikana. Luvussa 6 hahmotellaan projektin ajankäyttöä. Luvussa 7 arvioidaan projektiin liittyviä riskitekijöitä ja esitetään keinot niiden vaikutuksen minimoimiseksi. 

2. Termit

Projektin kannalta keskeisimmät aihealueeseen liittyvät termit ovat seuraavat:

Logiikka	(ts. ohjelmoitava logiikka, Programmable Logic Controller) on yksinkertaisemmat ohjauspiirit korvaava laite. Se lukee signaalitulon, suorittaa muistissa olevan ohjelman ja ohjaa lähtönsä ohjelman mukaisesti.

MFC 	(Microsoft Foundation Classes) on Microsoftin luokkakirjasto Windows-pohjaisten sovellusten tekoon.

RS-232		on PC:n sarjaväylä.

Servomoottori	on elektronisesti ohjattu moottori, jonka nopeus pysyy samana kuormituksesta riippumatta.
 
SL 	(StressLogic) on Stresstech Oy:n valmistama moottorinohjauslogiikka.

STL	(Standard Template Library) on C++-standardin kirjasto, joka sisältää valmiit luokat yleisimpien tietorakenteiden käsittelyyn.

XY-pöytä 	on taso, jota voidaan kallistaa tai liikuttaa pääakselien suuntaisten moottorien avulla.

3. Taustaa ja tavoitteet

Projektin tilaajana on Stresstech Oy, jonka toimialana ovat teollisuuden komponenttien laadunvalvontajärjestelmät ja -menetelmät, joilla valvotaan mm. metallien jäännösjännityksiä. Sen pääasiallisia tuotteita ovat Barkhausenin kohinaan perustuvat analysaattorit, röntgendiffraktioanalysaattorit ja testijärjestelmät.

StressLogic (SL) on Stresstechin kehittämä moottorinohjauslogiikka, jota käytetään mm. testipenkkien XY-pöydissä käytettävien servomoottorien ohjaukseen (katso kuva 1). SL:ään ei ole olemassa testausohjelmistoa, vaan logiikka on konfiguroitavissa työläästi syöttämällä parametrit käsin RS-232 -väylän kautta.

Kuva 1: StressLogic toimintaympäristöineen.

SerTi-projekti toteuttaa ratkaisun tähän ongelmaan. Kehitettävä sovellus on helppokäyttöinen SL-logiikan ohjaus-, testaus- ja valvontasovellus. Kehitettävää sovellusta kuvataan tarkemmin vaatimusmäärittelyssä.

Projektin oppimisen tavoitteena on projektin ja sovelluksen suunnittelun ja toteutuksen kautta tutustuttaa ryhmän jäsenet ohjelmistotuotantoon sekä siihen oleellisesti liittyvään testaukseen, dokumentointiin ja raportointiin konkreettisella tasolla. Edelleen koordinointi ja kommunikointi osapuolten välillä antaa ryhmän jäsenille tuntumaa käytännön projekti- ja ryhmätyöskentelystä. Lisäksi ryhmän jäsenet tutustuvat tarkemmin Microsoftin Visual Studio -ohjelmointityökaluihin ja MFC-kirjastoihin.

4. Organisaatio ja resurssit

Projektiryhmä koostuu neljästä tietotekniikan laitoksen opiskelijasta. Susanna Blomqvist on tietoliikenteeseen suuntautunut toisen vuoden opiskelija. Antti Korhonen opiskelee tietoliikenteen linjalla kolmatta vuotta. Heikki Mylläri ja Pekka Pakari ovat kolmannen vuoden opiskelijoita ohjelmistotekniikan linjalla.
 
Stresstech Oy:n puolelta tilaajan edustajina toimivat toimitusjohtaja Lasse Suominen, elektroniikkainsinööri Tapio Hirvelä, ohjelmoija Aapo Tamminen ja ohjelmistosuunnittelija Ilkka Urtamo.

Tietotekniikan laitoksen puolelta projektia valvovat ja ohjaavat vastaavana ohjaajana toimiva lehtori Jukka-Pekka Santanen ja teknisenä ohjaajana Rainer Koreasalo.

Projektin käytössä on yliopiston taholta työhuone Agora C224.1, jossa jokaisella ryhmän jäsenellä on henkilökohtainen työasema. Niihin on asennettuna Windows 2000 -käyttöjärjestelmä, Visual Studio 6.0 -ohjelmointityökalu sekä valikoima muita projektin läpivientiä helpottavia ohjelmistoja (sis. mm. dokumentointiin tarvittavat työkalut ja CVS-versionhallintajärjestelmän).

Projektiryhmän jäsenillä on käytössään Sovellusprojektien yhteinen tulostin ja laitoksen kopiokone. Edelleen Sovellusprojektien kokoustila Agora C223.1 on varattavissa projektin käyttöön. Projektiryhmällä on myös käytettävissään projektin läpivientiä helpottavaa kirjallisuutta. Mahdollisesti tarvittavat lisäresurssit ovat neuvoteltavissa.

Stresstech Oy on antanut projektiryhmän käyttöön SL-kommunikointiprotokollan spesifikaatiot sekä koodiesimerkkejä. Testausta varten projektiryhmälle toimitetaan StressLogic-yksikkö sekä myöhemmin myös XY-pöytä.

5. Projektin tehtävät, työnjako ja käytännöt

Luvussa esitetään SerTi-projektiin sisältyvien tehtävien suuntaa-antava jako ryhmän jäsenten kesken. Täsmällistä jakoa hienosäädetään projektiryhmän sisällä projektin kunkinhetkisten tarpeiden mukaan.

Jäsenten keskinäinen työmäärä pyritään jakamaan mahdollisimman tarkoin tasan, huomioiden kuitenkin mahdolliset ylitsepääsemättömät esteet (loukkaantuminen tms.). Projektipäällikkönä toimii Susanna Blomqvist.

Noin kerran viikossa pidetään projektipalaveri, johon osallistuvat projektiryhmä, ohjaajat ja tilaajan edustajat. Kussakin palaverissa käsitellään projektin etenemiseen liittyviä asioita vuorokautta aiemmin projektiryhmän laatiman ja palaveriin osallistuville henkilöille toimittaman esityslistan mukaan. Johtaja- ja sihteerivastuu näissä kokouksissa kuuluvat viikoittain vaihtuville ryhmän jäsenille.

Projektin alkuvaiheessa laadittavat dokumentit on jaettu ryhmän kesken periaatteella ”yksi dokumentti tekijää kohden”. Käytännössä ryhmän jäsenet tekevät yhteistyötä yli tällaisten karkeiden rajojen, mutta lopullinen vastuu dokumentin tuotoksesta on taulukkoon 1 merkityllä henkilöllä.

Tehtävä	SBl	AKo	HMy	PPa	
Projektisopimuksen teko	X				
Projektisuunnitelman teko			X		
Vaatimusmäärittelyn teko	X			X	
Sovelluksen suunnittelu	X	X	X	X
	
Toteutus: Käyttöliittymä ja kontrolliluokat	X	X			
Toteutus: Terminaali- ja lokiluokat				X	
Toteutus: Kommunikointiluokat			X		
Sovelluksen testaus	X	X	X	X	
Dokumentointi	X	X	X	X	

Taulukko 1: Ryhmän jäsenten osallistuminen eri päävaiheisiin.

Sovelluksen suunnittelu toteutetaan ryhmätyönä koko ryhmän voimin. Sovellussuunnitelman kirjoittaa puhtaaksi Antti Korhonen.

Sovelluksen eri osa-alueet jaetaan toteuttajien kesken seuraavasti: Heikki Mylläri toteuttaa sovelluksen kommunikointiluokat ja RS-parametridialogin. Pekka Pakari keskittyy sovelluksen terminaali- ja lokiluokkiin. Susanna Blomqvist ja Antti Korhonen yhteistyössä toteuttavat ”kaiken muun”, käytännössä suurimman osan käyttöliittymästä ja käskytulkkauksesta vastaavat kontrolliluokat.
 
Sovelluksen testaukseen osallistuu koko ryhmä. Ryhmän kaikki jäsenet suunnittelevat testitapauksia kaikille ryhmän toteuttamille sovelluksen osille. Testiraportteja laatii jokainen testaaja. Testaussuunnitelman kirjoittaja on tällä hetkellä avoin.

Projektin dokumentointiin osallistuvat kaikki ryhmän jäsenet. Vastuu jaetaan dokumenttikohtaisesti siten, että projektipalaverien pöytäkirjat laatii palaverin sihteeri ja muiden dokumenttien laatija valitaan tapauksen mukaan. Dokumentit laaditaan rtf-muotoon, julkaistaan projektin www-sivulla ja tallennetaan projektin verkkolevylle. Tieto uusista versioista lähetetään sähköpostitse kaikille tiivistelmäsivulla luetelluille henkilöille. Dokumentointikielenä on projektin läpivientiin liittyvissä dokumenteissa suomi ja sovellukseen liittyvissä englanti.

6. Aikataulu

SerTi-projekti toteutetaan 31.1.–23.5. välisenä aikana. Projekti päättyy toukokuun 2003 puolessa välissä pidettävään loppuesittelyyn ja dokumentoinnin valmistumiseen. Projekti jaetaan seitsemään välivaiheeseen ja ne toteutetaan taulukossa 2 esitetyn aikataulun mukaisesti.

Alkaa	Loppuu	Tehtävä	
ma 17.2.	pe 14.3.	Projektisuunnitelman laadinta	
ma 17.2.	pe 14.3.	Vaatimusmäärittelyn laadinta	
ma 3.3.	pe 21.3.	Sovellussuunnitelma	
ma 17.3.	pe 11.4.	Sovelluksen toteutus:
Osittaisella toiminnallisuudella varustettu demo	
ma 14.4.
	pe 25.4.	Sovelluksen toteutuksen viimeistely	
pe 18.4.	pe 9.5.	Sovelluksen testaus	
pe 25.4.	pe 23.5.	Dokumentointi	

Taulukko 2: Aikataulu.

Aikavälillä 17.2.–14.3. laaditaan projektisuunnitelma ja täsmällinen vaatimusmäärittely. Sovellussuunnitelman laatiminen aloitetaan jo ennen niiden valmistumista. Sovellussuunnitelman lopullinen versio on valmis viimeistään 7 viikkoa projektin käynnistymisen jälkeen siten, että takarajana on 21.3.

Sovelluksen toteutusvaihe kestää arviolta 7 viikkoa ja on osittain päällekkäinen suunnittelu- ja testausvaiheiden kanssa. Luvussa 5 eriteltyjä sovelluksen osa-alueita toteutetaan rinnakkain siten, että maanantaina 14.4 olevassa tarkistuspisteessä kaikki osa-alueet voidaan yhdistää ainakin osittain toimivaksi kokonaisuudeksi.

Testausvaiheessa varmistetaan sovelluksen toiminnallisuuden oikeellisuus ja soveltuvuus käyttötarkoitukseensa.

Dokumentointia tullaan suorittamaan koko projektin ajan. Viimeinen vaihe koostuu loppuraporttien laatimisesta.

Kuva 2 kuvaa projektin aikataulun janakaaviona.

Kuva 2: Aikataulu janakaaviona.

7. Riskitekijät ja niiden hallinta

Projektikokemattomuus eli ryhmän jäsenten tottumattomuus projektimuotoiseen ryhmätyöhön voi hankaloittaa projektiryhmän sisäistä dynamiikkaa ja tiedonkulkua sekä heijastuu kaikkiin projektin toteutuksen osa-alueisiin. Yksikään ryhmän jäsen ei ole aiemmin osallistunut vastaavat mittasuhteet omaavaan projektiin. Tämän vaikutuksia ei voida eliminoida täysin, mutta niitä pyritään kontrolloimaan varaamalla aikatauluun joustovaraa.

Ohjelmointityökalujen tuntemattomuus muodostaa toisen ongelman. Yksikään ryhmän jäsenistä ei ole käyttänyt Visual Studio -kehitystyökalua vastaavassa laajuudessa, mikä todennäköisesti hankaloittaa sen käyttöä ja käyttöönottoa. Tätä riskiä ryhmän jäsenet pyrkivät kontrolloimaan omaehtoisella perehtymisellä ko. työkaluun.

Suunnittelun puutteellisuus ja/tai epäyhtenäisyys voi olla projektin etenemisen kannalta kriittinen ongelma. Tämä pyritään eliminoimaan ottamalla koko ryhmän voimin osaa sovelluksen rakenteen suunnitteluun, jolloin epäkohdat on helpointa huomata.

Aikataulu saattaa itsessään tuottaa ongelmia sovelluksen toteutusvaiheessa. Tätä riskiä pyritään kontrolloimaan varaamalla toteutusvaiheen ympärille pari viikkoa pelivaraa.

Henkilöstöongelmat käsittävät monia mahdollisia ongelmia yllättävistä sairastumisista tai välttämättömistä menoista projektin jäsenten keskinäisiin väleihin. Sosiaalisia ongelmia ei tällä hetkellä ole ennakoitavissa ja muita pyritään ehkäisemään tekemällä työtehtävien siirto henkilöltä toiselle mahdollisimman helpoksi. Viikoittaisissa projektiryhmän palavereissa ylläpidetään ryhmän jäsenten yleiskäsitystä projektin osa-alueiden vaiheista, toteutusmenetelmistä ja mahdollisista ongelmista. Edelleen ryhmän jäsenillä on aina käytettävissään toistensa tehtäviin liittyvä materiaali, siten että projektin eteneminen ei riipu kenestäkään yksilönä.

Laitteisto-ongelmat voivat yllättää missä tahansa vaiheessa projektia. Näiden vaikutuksen kontrollointi jää pääosin ylläpidon harteille, mutta projektin kunkinhetkiset tulokset turvataan säilyttämällä riittävä määrä varmuuskopioita kriittisistä tiedostoista.

8. Yhteenveto

Tämä dokumentti määrittelee SerTi-projektin aikataulun ja työnjaon. Dokumentti on suunnattu pääasiassa projektiryhmälle itselleen projektin hallinnan ohjeeksi sekä ohjaajille ja tilaajan edustajille seurannan tueksi. Suunnitelmaa on jo käytännössä seurattu sellaisenaan tähän asti ja hyväksymisen jälkeen se sitoo ryhmää myös teknisesti. Mikäli projektisuunnitelmaa muutetaan, muutokset hyväksytetään kaikilla ryhmän jäsenillä ja vastaavalla ohjaajalla.

Lähteet

1. SerialTester General Specification (Ilkka Urtamo 2002)

2. Stresstech Oy:n tiivistelmä dokumentista C++ Coding Standard (Todd Hoff 2002)