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

1        Johdanto........................................................................................ 1

2        Projektin taustat ja tavoitteet.................................................... 2

2.1    Projektin taustat......................................................................................... 2

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

6.5    Projektin viimeistely............................................................................... 10

7        Yhteenveto................................................................................... 11

8        Lähteet........................................................................................ 12

 


1         Johdanto

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.

2         Projektin taustat ja tavoitteet

Tässä luvussa kerrotaan projektin taustoista sekä Exodus -projektin tavoitteista.

2.1        Projektin taustat

 

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

2.2        Projektin tavoitteet

 

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.

3         Resurssit

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.

4         Vastuualueet

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.

5         Projektiin liittyvät riskit

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.

6         Ajankäyttösuunnitelma

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.

6.1        Aiheeseen tutustuminen ja suunnittelu

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.

6.2        Projekti- ja sovellussuunnitelman laatiminen

Projektin alussa ensisijaisena tavoitteena on projekti- ja sovellussuunnitelman laatiminen. Näiden suunnitelmien valmistuminen on edellytyksenä seuraavien vaiheiden käynnistymiselle.

6.3        Ohjelmointia, dokumentointia ja testaamista

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

6.4        Dokumentointia ja testaamista

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.

6.5        Projektin viimeistely

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

7         Yhteenveto

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.

8         Lähteet

[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