Petri Eskelinen, Lasse Laukkanen, Kaisa Kokko ja
Mikko Ketola
EXODUS
Projektisuunnitelma
Tietotekniikan cum laude -työprojekti
29.10.2001
Tekijät: EXODUS-projekti: Petri Eskelinen, Lasse Laukkanen, Kaisa Kokko ja Mikko Ketola
Yhteystiedot: Agc233.3, http://kotka.it.jyu.fi/exodus, puh: 014-2604966
Työn nimi: Projektisuunnitelma
Title in English: Project plan
Työ: Tietotekniikan cum laude –työprojektin projektisuunnitelma
Sivumäärä: 1
Teettäjä: Numerola Oy
Avainsanat: aikataulu, ajankäyttö, vastuualue
Tiivistelmä: Tässä projektisuunnitelmassa kerrotaan projektin taustasta ja tavoitteista sekä esitellään käytössä olevia resursseja, joiden puitteissa projektia tehdään. On myös kerrottu, mitkä ovat kullekin projektiryhmän jäsenelle jaetut vastuualueet sekä selvitetty, miten aikaa tullaan käyttämään. Tähän projektiin liittyviä riskejä on myös pyritty miettimään.
Termiluettelo
Alla lueteltu hieman projektin aikana ilmenneitä uusia termejä:
TCL/Tk Tool Command Language/Toolkit. Ohjelmistopaketit Tcl ja Tk yhdessä tarjoavat ohjelmointiympäristön
graafisten sovelluksien kehittämiseen /käyttämiseen. TCL on tulkattava
komentorivipohjainen kieli [2].
GLUT OpenGL Utility Toolkit. Itsenäinen laajennuskirjasto OpenGL-ohjelmien kirjoittamiseen. GLUT käsittää yksinkertaisen ohjelmointirajapinnan OpenGL:lle. GLUTia on mahdollista käyttää sekä Windows että X-Windows järjestelmissä.
OpenGL Grafiikkakirjasto 3D-gafiikkaan ja mallinnukseen.
Blokki Kuutio, pyramidi, tetraedri tai prisma: tahkot muodostuvat bezier-pinnoista.
Bezier-pinta CAD- ja piirrosohjelmissa käytetty pintatyyppi. Sen avulla pinnat saadaan taipumaan eri muotoihin ohjauspisteitä siirtämällä.
Sisältö
1 Johdanto........................................................................................ 1
2 Projektin
taustat ja tavoitteet.................................................... 2
3 Resurssit....................................................................................... 4
4 Vastuualueet.................................................................................. 6
5 Projektiin
liittyvät riskit.......................................................... 8
6 Ajankäyttösuunnitelma.................................................................... 9
6.1 Aiheeseen tutustuminen ja suunnittelu................................................. 9
6.2 Projekti- ja sovellussuunnitelman
laatiminen................................... 9
6.3 Ohjelmointia, dokumentointia ja
testaamista..................................... 9
6.4 Dokumentointia ja testaamista................................................................. 9
7 Yhteenveto................................................................................... 11
8 Lähteet........................................................................................ 12
Exodus-nimisessä tietotekniikan cum Laude -työprojektissa toteutetaan 3D-geometrian piirtämiseen ja havainnollistamiseen tarkoitettu sovellus, jolla kootaan laskenta-alueita yksinkertaisista kappaleista eli blokeista. Kyseisiä alueita käytetään muissa sovelluksissa fysikaalisten ilmiöiden mallintamiseen.
Toisessa luvussa kerrotaan projektin taustasta ja sovelluksen käyttökohteesta sekä itse projektin tavoitteesta lähinnä projektiryhmän oppimisen kannalta. Kolmas luku, projektin resurssit, antaa tietoa käytössä olevista ohjaajista ja yhteyshenkilöistä sekä käytössä olevista laitteista ja ohjelmista. Neljännessä luvussa kerrotaan projektin työnjaosta ja viidennessä luvussa kaikista niistä riskeistä, joita projektin toteutukseen liittyy. Alustava aikataulu työmääristä ja sovituista katselmusajankohdista käy ilmi luvussa kuusi. Lopussa on vielä yhteenveto ja lähdeluettelo.
Tässä luvussa kerrotaan projektin taustoista sekä Exodus -projektin tavoitteista.
Numerola Oy on jyväskyläläinen, vuonna 1998 perustettu yritys, joka kehittää ohjelmistoja teollisuusprosessien laskennalliseen simulointiin. Simuloinneissa sovelletaan pääosin niin sanottua äärellisten elementtien menetelmää (FEM). Simulointiohjelmistoon kuuluu FEM-ratkaisijan lisäksi syöttötietoa ja laskennallisia tuloksia käsitteleviä ohjelmia [3]. Näissä ohjelmistoissa kappaleitten geometria kuvataan elementtiverkolla ja sen avulla lasketaan esimerkiksi lämpötilajakaumia. Teollisuusprosessien mallinnuksessa käytetään yleensä yksinkertaisista elementeistä koostuvia laskenta-alueita. Elementit voivat olla esim. eri materiaaleista koostuvia kappaleita tai osa-alueita, joissa neste tai ilma virtaa.
Exodus-projekti liittyy Numerola Oy:n laajempaan Numerrin-tuotekehityshankkeeseen, jonka tavoitteena on monipuolinen ohjelmistopaketti laskennalliseen simulointiin ja optimointiin. Aikaisemmin keväällä 2001 on ko. yritykselle toteutettu työprojektin puitteissa Exoduksen 2D -versio: Genesis [1].
Projektissa toteutetaan 3D-piirtotyökalu, jolla kootaan alueita yksinkertaisista peruskappaleista eli blokeista. Kyseisiä alueita käytetään fysikaalisten ilmiöiden mallintamiseen. Projektissa keskitytään 3D-toimintojen sisäiseen toteuttamiseen. Ensisijaisena tavoitteena on toteuttaa 3D-ympäristö, jossa on neljänlaisia vektorimuotoisia perusblokkeja, joiden avulla ohjelmalla muodostetaan mallinnettavia objekteja. Perusblokit ovat heksaedri, prisma, tetraedri ja pyramidi. Genesis-projektin luokkahierarkiaa voidaan hyödyntää esimerkinomaisesti.
Projektilaisten tarkoituksena on oppia uusien työkalujen käyttöä, kokonaisvaltaista sovellusten suunnittelemista ja toteutusta sekä ryhmätyö- ja vuorovaikutustaitoja ennalta suunnitellun aikataulun mukaisesti.
Seuraavat henkilöt ovat mukana projektissa:
Projektiryhmä EXODUS: Petri Eskelinen
Lasse Laukkanen
Kaisa Kokko
Mikko Ketola
Ari Häyrinen (visuaalinen konsultti)
Vastaava ohjaaja: Kari Kärkkäinen
Tekniset ohjaajat: Anni Toivola (Tcl/Tk)
Markku Vire (OpenGl/3D)
Tilaajan edustajat: Kai Hiltunen
Eeva-Kaisa Rouhiainen
Erkki Heikkola
Projektiryhmällä on käytössä Agoran toisen kerroksen työprojektitilassa oma huone AgC233.3. Huoneessa on neljä mikrotietokonetta, joissa yhdessä on Windows 2000 professional -käyttöjärjestelmä ja muissa Linux. Dokumentointi on pääsääntöisesti tehty Microsoft Wordia käyttäen ja ajankäyttöä seurataan Microsoft Exceliin tehdyn sovelluksen avulla. Ohjelmakoodin kirjoitus hoituu tavallisia tekstieditoreita käyttäen, joista projektiryhmän jäsenet tulevat käyttämään emacsia. Toki muitakin vaihtoehtoja on käytettävissä. Tarvittavat ohjelmointityökalut (TCL/Tk- sekä GNU-kääntäjät) löytyvät myös projektiryhmän koneilta. C++-debuggerina käytetään ddd-ohjelmaa. Projektihuoneessa on myös käytössä puhelin sekä kattavasti toimistotarvikkeita.
Myöskin projektitilassa oleva kahvinkeitin/jääkaappi on vapaasti käytettävissä. Käyttöön on myös hankittu runsaasti kirjallisuutta, joita saa tarvittaessa lainata. Tulostuskiintiö on käytännössä lähes rajaton, sillä kunkin projektilaisen tulostuskiintiö on liki 20000 sivua.
Petri on osoittautunut sanavalmiiksi ja eniten tietämystä omaavaksi, joten hän tulee toimimaan Exoduksen projektipäällikkönä. Ajankäytön kirjaamisesta jokainen huolehtii omalta osaltaan. Dokumentointi (esityslistat, pöytäkirjat & muut dokumentit) hoidetaan yhdessä aina sen mukaan, miten itse kullakin on aikaa/resursseja vapaana. Projektipalavereissa Petri toimii pääsääntöisesti puheenjohtajana ja Kaisa sihteerinä.
Alla olevassa kuvassa on esitetty ohjelman rakenne pääpiirteittäin ja siitä selviää myös työnjako:
TCL/Tk:lla tehdään erillinen käyttöliittymä, joka sisältäen toiminnot joita käyttäjä valitsee. Käyttöliittymä hoitaa siis kaiken käyttäjältä kysyttävän tiedon välittämisen tietorakenteelle. Käyttöliittymän yhteyteen tehdään myös C++:lla osio, joka hoitaa datan kuljettamisen Tcl/Tk:n ja tietorakenteen välillä. Käyttöliittymän tekemiseen käytetään kahta henkilöä, jos se osoittautuu yhtä työlääksi kuin GENESIS-projektissa kävi. Käyttöliittymän toteuttavat Mikko ja Kaisa.
OpenGL hoitaa piirtämisen GLUT-ikkunaan, joka on erillään käyttöliittymäikkunasta ja Petri ottaa toteuttaakseen sen, koska hän hallitsee meistä OpenGL-ohjelmoinnin parhaiten.
Lasse toteuttaa C++-tietorakenteet, jonka tehtäviin kuuluu piirtoavaruuden kappaleiden ja niihin liittyvien operaatioiden mallintaminen.
Käyttöliittymän ja muiden eri moduulien välinen rajapinta ja integrointi toteutetaan kyseisten moduulien vastuullisten kesken, jolloin osalliset voivat vaikuttaa rajapintaan ja tietävät miten tieto on kuljetettava pinnan läpi. Rajapinnat suunnitellaan käyttötapauksiin pohjautuen ja niiden tarkempi määrittely löytyy sovellussuunnitelmasta.
Ennakoimalla mahdolliset ongelmakohdat pyritään ne ehkäisemään mahdollisimman tehokkaasti jo ennen niiden ilmenemistä. Seuraavassa on lueteltu muutamia prjektiin liittyviä riskejä:
· Uusien työkalujen opetteleminen: suurimmalle osalle projektiryhmän jäseniä Linux käyttöjärjestelmä, TCL/Tk, OpenGL sekä GLUT ovat entuudestaan melko tuntemattomia. Tästä johtuen aikaa tulee menemään alussa runsaasti pelkästään perusasioiden opetteluun. Mutta toki tässäkin asiassa voi kääntyä teknisten ohjaajien puoleen.
· Työnjaon onnistuminen on myöskin on olennaista, sillä ryhmän jäsenten ohjelmointitaidot vaihtelevat olennaisesti - ja jo osuuksia jakaessa tämä tulisi ottaakin huomioon mahdollisimman hyvin. Näin taattaisiin projektin tasainen edistyminen joka alueella, mitä seurataan ajankäyttövihkojen perusteella.
Projekti toteutetaan seuraavalla sivulla olevan aikataulun mukaisesti. Suurempia tehtäväkokonaisuuksia projektista löytyy selvästi neljä, ja näitä onkin hieman selvitetty seuraavissa alaluvuissa.
Projekti alkaa aiheen vastaanottamisella ja tehtävien hahmottelulla. Ensimmäiset viikot kuluvatkin tehtävän tarkentamisessa ja aiheeseen syventymisessä. Tähän tehtäväkokonaisuuteen liittyy läheisesti projekti- ja sovellussuunnitelman laatiminen.
Projektin alussa ensisijaisena tavoitteena on projekti- ja sovellussuunnitelman laatiminen. Näiden suunnitelmien valmistuminen on edellytyksenä seuraavien vaiheiden käynnistymiselle.
Tämä vaihe aloitetaan välittömästi suunnitelmien valmistumisen jälkeen. Ohjelmoinnin aikana dokumentointia kirjoitetaan lähinnä kommentein. Testaamisella tarkoitetaan lähinnä itsenäisten ohjelmakokonaisuuksien testaamista. Toki testaamista tehdään aina välillä eri komponenttien välilläkin näin varmistaen sen että toteutus on ollut yhtenäistä.
Ohjelmointityön loppuvaiheessa aloitetaan laajempi testaaminen ja dokumentointi. Dokumentointi käsittää käyttöohjeitten kirjoittamisen ja komponenttien dokumentaatiot. Testaamista suoritetaan yhdistämällä projektin aikana toteutetut komponentit.
Viimeistelyvaiheessa kootaan kaikki julkiseksi jäävät dokumentit projektikansioon sekä poltetaan Exodus-ohjelma cd:lle kansioon liittämistä varten.
Alustavasti projektin aikataulua on suunniteltu seuraavanlaiseksi:
Projektisuunnitelma, käyttötapaukset ja
vaatimusmäärittely valmiina 24.10.2001
Sovellussuunnitelma valmis 31.10.2001
Projektisopimus valmis allekirjoitettavaksi 31.10.2001
Käyttöliittymän ulkoasu ja muutama perustoiminto valmis:
blokkien luominen/poistaminen onnistuu 07.11.2001
Ohjelman alkeisversio testaukseen Numerolalle 15.11.2001
Siirto, pyöritys ja yhteyksien tutkiminen onnistuu 14.11.2001
Tahkojen Bezier -kuvaukset 21.11.2001
Blokkien yhdistäminen & erottaminen 28.11.2001
Ohjelman testaukseen Numerolalle 03.12.2001
Virheet korjattu & dokumentoitu 16.12.2001
Projektin loppuesittely 17.12.2001
Dokumentissa kuvattiin siis projektin läpivientiä eli työnjakoa, arvioitua aikataulua sekä projektin käytössä olevia resursseja. Dokumentissa selvitettiin myös projektin taustat eli mihin Exodus pohjautuu ja mitä sillä tullaan tekemään. Projektiin liittyvät riskit pyrittiin myös miettimään mahdollisimman hyvin ja keksimään niihin ratkaisut.
[1] Genesis-kansio, kevät 2001, Tietotekniikan laitos
[2]
Ousterhout, John, Tcl and Tk Toolkit, Addison-Wesley, 1998
[3] Hakala Jussi, Laitinen Mika, Numerrin 1.0-käsikirja Numerola Oy, Jyväskylä, 2001