1    Tausta (PK)                                                                                    

Helsingin yliopiston Tietojenkäsittelytieteen laitoksen Ohjelmistotuotanto –kurssin projektityönä toteutetaan Java-käyttöliittymäkomponentit Schedule ja Timeline. Projektin asiakkaana on Sari A. Laakso Tietojenkäsittelytieteen laitokselta.

Käyttöliittymäkomponenttien tarkoituksena on helpottaa hyvien käyttöliittymäratkaisujen käyttöä ohjelmistoissa. Projektin aikana valmistuneita komponentteja voidaan käyttää Java-sovelluskehittimissä (User Interface Management Systems UIMS), mikä säästää käyttöliittymän toteuttajilta aikaa ja vaivaa, kun jokaisen ei tarvitse toteuttaa komponenttia itse. Ei tule myöskään houkutusta käyttää huonompaa, mutta helpommin toteutettavissa olevaa käyttöliittymäratkaisua.

Projektin työmäärittely löytyy osoitteesta

http://www.cs.helsinki.fi/~salaakso/kali-ohtu.html

          2    Tavoitteet ja rajaukset (PK)                                                        

Tavoitteena on suunnitella molemmat komponentit ja toteuttaa molemmista aikataulun sallimat olennaisimmat osat. Timeline –komponetti on kalenterin sisältävä scrollbar, jolla voi siis selata kalenteria ja valita siitä osia. Schedule –komponentti on kalenterinäkymä, jossa näkyvä ajanjakso voi vaihdella muutamasta päivästä muutamaan viikkoon. Tarkoitus on, että komponentteja voi käyttää yhdessä siten, että Timelinesta valittu ajanjakso näkyy tarkemmin Schedulessa. Niitä on myös tarkoitus pystyä käyttämään erikseen, jos vain toinen niistä soveltuu kyseessä olevaan käyttöliittymään. Tarkemmat kuvaukset komponenteista tulee vaatimusmäärittelyyn.

Komponenttien toteutuksessa on tarkoitus panostaa komponenttien helppokäyttöisyyteen sekä niitä käyttävän ohjelmoijan että niitä ohjelmassa käyttävän loppukäyttäjän näkökulmasta käyttäen suunnittelussa hyväksi Tietojenkäsittelytieteen laitokselle aikojen kuluessa kerääntynyttä kokemusta ja asiantuntemusta. Projektin aikana tehtävät komponenttien käyttöliittymää koskevat päätökset on hyväksytettävä asiakkaalla. Toteutettavien piirteiden valinta ja priorisointi täsmennetään kälisuunnitelman valmistumisen ja priorisoinnin jälkeen.

Projektin hallintaan ja sisäiseen kommunikointiin käytetään suomen kieltä, mutta kaikki komponenttien käyttäjää kiinnostava dokumentointi ja ohjelmakoodissa esiintyvä kommentointi ja nimet ovat englantia.

          3    Ympäristö                                                                                       

Komponentti toimii Java 2 virtuaalikoneessa. Se on käytettävissä ohjelmistoissa, jotka toteutetaan millä tahansa Java 2:ta tukevalla kehitysvälineellä ja kääntäjällä.

          4    Organisaatio                                                                                  

Projektiryhmään kuuluvat TKTL:n opiskelijat Panu Hiltunen, Päivi Kero, Teemu Kurppa ja Jussi Laukkanen (projektipäällikkö). Ryhmän ohjaajina toimivat Karri-Pekka Laakso ja Asko Saura.

 

Projektiryhmän kokouksissa sihteerivuoro on kiertävä siten ettei projektipäällikkö osallistu kiertoon. Sihteerin vuoro kiertää aakkosjärjestyksessä. Projektin puolivälissä voidaan projektipäällikkö vaihtaa. Sihteeri laittaa pöytäkirjan ryhmähakemistoon (teksti- tai HTML-tiedostona)

Työn tilaaja on Sari A Laakso TKTL:lta.

          5    Toimintasuunnitelma                                                                  

5.1 Työn ositus ja aikataulu                                                                

Projekti vaiheet (suunnittelu, toteutus ja testaus) tuottavat seuraavat dokumentit: Projektisuunnitelma, Vaatimusmäärittely, Käyttöliittymäsuunnitelma, Toteutussuunnitelma, Toteutus- ja testausdokumentti, Käyttöohje ja Loppuraportti.

 

Projektisuunnitelmaa päivitetään koko projektin ajan. Alustava projektisuunnitelma hyväksytetään asiakkaalla 20.9.1999 ja tallennetaan projektikansioon. Projektisuunnitelman liitteenä on projektin GANTT-kaavio johon on kuvattu osakokonaisuuksien aikataulut. GANTT-kaavioon kirjataan myös projektiin osallistuvien henkilöiden pakollisia menoja jotka rajoittavat kyseisten henkilöiden mahdollisuuksia osallistua työhön.

 

Vaatimusmäärittelyssä kuvataan asiakkaan työlle asettamat vaatimukset. Vaatimusmäärittely sisältää käyttötapaukset. Käyttötapausten avulla testaamme käyttöliittymäsuunnittelun aikana käyttöliittymäkomponenttien toimivuuden.

 

Käyttöliittymäsuunnitelmassa kuvataan toteutettavien komponenttien käyttöliittymäratkaisut.

 

Toteutussuunnitelmassa kuvataan järjestelmän tekninen arkkitehtuuri (moduulikuvaukset, rajapintojen määrittelyt).

 

Toteutusdokumentissa kuvataan käytetyt toteutusratkaisut ja –välineet. Erityisesti kuvataan vaatimus- ja suunnitteludokumenteissa esitetyistä ratkaisuista poikkeavat piirteet. Dokumentti sisältää testauksen kuvauksen ja testitulokset sekä ylläpito-ohjeen.

Toteutettavista komponenteista tehdään projektin aikana useita prototyyppejä, joiden toimintaa käydään läpi projektiryhmäläisten ja ohjaajien kanssa. Prototyyppejä esitetään myös asiakkaalle jolloin asiakas voi todeta projektin tilan ja esittää toivomuksia käyttöliittymän.

 

Valmiiden komponenttien dokumentoinnilla 3 kohderyhmää:

1. Owner: ( Komponenttien jatkokehittäjä, tarvitsee myös komponenttien lähdekoodin )

2. UI-designer: ( Käyttöliittymäsuunnittelija, ei välttämättä koodaa )

3. Programmer: ( Ohjelmoija )

 

 

 

Käyttöohjeeseen sisällytetään koodin kommenteista generoitu kuvaus.

 

Projekti alkoi 14.9.1999 ja päättyy 3.12. Kriittisiä päivämääriä ovat:

Projektisuunnitelma 20.9.1999,

Vaatimusmäärittely 23.9.1999,

Käyttöliittymäsuunnitelma 8.10.1999,

Toteutussuunnitelma 22.10.1999,

Toteutus- ja testausdokumentti sekä käyttöohje 29.11.1999,

Loppuraportti 1.12.1999 ja

Demo 3.12 .1999.

 

Katso myös liite A: GANTT-kaavio!

5.2 Työnjako                                                                                     

Projektin alkuvaiheessa Jussi toimii projektipäällikkönä. Kokouksissa valitaan sihteeri(kiertävä), jonka tehtävänä on kirjoittaa muistio kokouksesta ja toimittaa se verkkoon. Projektisuunnitelman laadintaan osallistuvat kaikki ryhmän jäsenet. Muilta osin projektin työnjakoa tarkennetaan pian.

5.3 Työmääräarvio                                                                              

Oheisessa taulukossa on alustava työmääräarvio. Työn vaiheiden ajoituksista ja töiden päällekkäisyyksistä saa parhaimman kuvan tarkastelemalla tämän dokumentin liitteenä olevaa GANTT-kaaviota. Työn on laskettu vastaavaan kuuden opintoviikon suoritusta Helsingin Yliopiston Tietojenkäsittelytieteen laitoksella.


 

Työ

Tunnit

Projektisuunnitelma ja sen päivittäminen

50

Vaatimusmäärittely

30

Käyttöliittymäsuunnitelma:

Käyttöliittymän suunnittelu

Käyttöliittymän testaus käyttötapauksilla

Dokumentin tarkastus + tarkentaminen

80

Toteutusuunnitelma:

Toteutuksen suunnittelu

Toteutussuunnitelman testaus

Dokumentin tarkastus + tarkentaminen

150

Toteutus:

400

Testaus

50

Toteutus- ja testausdokumentti

60

Loppuraportti

30

Käyttöohje

30

Demon valmistelu ja esitys

10

Oman toiminnan arviointi

15

Seurantapalaverit

200

YHT:

1105

5.4 Kokouspäivämäärät

Projektiryhmällä on virallisia kokouksia kahdesti viikossa, maanantaisin kello 17.00 – 20.00 sekä perjantaisin 14.15 – 16.00.

Lisäksi ryhmä kokoontuu tarpeen mukaan, esim. prototyyppien esittelyä varten.

5.5 Tarkastustilaisuudet

Käyttöliittymäsuunnitelman tarkastustilaisuus pidetään 12.10.1999.

5.6 Viikkosuunnitelmat

Aluksi yritettiin muutamaan kertaan tehdä kahden viikon suunnitelmia, mutta kaksi viikkoa todettiin liian pitkäksi ajaksi. Toteutuksen alkaessa alamme tehdä viikon mittaisia suunnitelmia, jotka sovitaan perjantai-palaverissa. Edellisen viikon suunnitelman toteutumista seurataan myös perjantaisin.

          6    Menetelmät ja standardit (TK)                                                   

6.1 Ohjelmistomenetelmät

Projektissa ei sovelleta tiukasti mitään prosessimallia, mutta protoilumallin mukaisesti pyritään tuottamaan nopeasti osittain toimivia prototyyppejä, joilla voidaan arvioida ratkaisujen hyvyyttä.

6.2 Dokumentointimenetelmät

Dokumentointikielenä on asiakkaan toivomuksesta englanti, mutta projektin sisäisissä dokumenteissa (projektisuunnitelma, pöytäkirjat) käytetään suomea.

 

Projektisuunnitelma on projektiryhmän sisäiseen käyttöön tarkoitettu dokumentti, jota päivitetään koko projektin ajan. Projektisuunnitelmassa kuvataan yhteisesti sovittuja toimintatapoja, joita projektilaisten tulisi noudattaa.

 

Vaatimusmäärittelyssä kuvataan asiakkaan asettamat vaatimukset toteutettaville käyttöliittymäkomponenteille, esitellään muissa projektin vaiheissa pohjamateriaalina käytettävät käyttötapaukset ja tarkennetaan toteutuksen ja testauksen vaatimuksia.

 

Käyttöliittymäsuunnitelma pohjautuu vaatimusmäärittelyssä esitettyihin käyttötapauksiin. Käyttöliittymäsuunnitelmassa tarkennetaan käyttöliittymä mahdollisimman lopulliseen muotoonsa, siten, että  käyttötapauksista seuraavat toiminnat voidaan käyttöliittymällä toteuttaa. Ratkaisuja esitetään tekstin lisäksi käyttöliittymästä piirrettyjen kuvien avulla.

 

Toteutussuunnitelmassa kuvataan toteutettavat komponentit ohjelmistona. Luokka- ja oliokaavioilla kuvataan komponenttien osien riippuvuuksia ja yhteyksiä toisiinsa. Sekvessikaavioilla kuvataan komponenttien osien välistä kommunikaatiota tavallisimmissa tapauksissa. Komponenttien kutsurajapinnat määritellään mahdollisimman lopulliseen muotoon jo tässä vaiheessa. Toteutussuunnitelmasta muodostuu lopulta toteutuksen kuvaus.

 

Tutorial on sovelluskehittäjille suunnattu käyttöohje, jossa esimerkein kerrotaan, kuinka komponentteja voi käyttää ja muokata oman ohjelmistonsa tarpeisiin.

 

Testaussuunnitelmassa kuvataan testiaineisto ja suoritettavat testitapaukset ja arvioidaan testitapausten kattavuus.

 

Testausraportissa kuvataan testaussuunnitelmassa esitettyjen testitapaussten tulokset. Raportissa kuvataan tarkasti kaikki löydetyt virheet ja puutteet, joita ei projektin puitteissa voida korjata.

6.3 Ohjelmointimenetelmät

Yhteistä ohjelmointiympäristöä ei valita, vaan jokainen voi ohjelmoida itselleen tutuimmassa ympäristössä. Asiakkaan toivomuksesta toteutetaan komponenteista vain Windows Look-and-Feel –versiot, joten ensisijaisesti testaus suoritetaan Windowsissa.

 

Ohjelmakoodin kommentointi (erityisesti JavaDoc-kommentit) on englanninkielistä, samoin kuin kaikki luokkien, metodien, muuttujien tms. nimet. Kuitenkin toteutusvaiheessa voi vaikeita ratkaisuja kommentoida suomeksi. Näitä voidaan kääntää myöhemmin lopullisesta koodista englanniksi.

6.4 Tyylioppaat

Ohjelmakoodissa noudatetaan ensisijaisesti Sunin Java Coding Conventions - tyyliopasta (http://java.sun.com/docs/codeconv/).

Lisäksi JavaDoc-kommenteissa huomioidaan How to Write Doc Comments for Javadoc –oppaassa

(http://java.sun.com/products/jdk/javadoc/writingdoccomments.html) annetut ohjeet.

Myöhemmin sovitaan vielä tarkemmin ryhmän omia käytäntöjä.

6.5 Työkalut

Dokumentointi

Dokumentit toteutetaan Word97 –ohjelmalla. Kaikilla ryhmän jäsenillä on käytössään Word97. Lisäksi käytetään JavaDoc –ohjelmaa HTML-muotoisten API-kuvausten tekemiseen.

Suunnittelu

Toteutuksen suunnittelussa tarvittavia luokka-, olio- ja sekvenssikaavioita tehdään Rational Rose –ohjelmalla. Rational Rose on asennettuna laitoksen  WindowsNT –koneisiin, ja lisäksi ainakin Jussilla on mahdollisuus käyttää sitä työpaikalla.

Ohjelmointi

Kukin ryhmänjäsen ohjelmoi haluamassaan ympäristössä, käytössä on ainakin Emacs (Teemu, Jussi) ja Jbuilder (Panu, Päivi).

6. 6 Version hallinta

Ohjelmakoodi

Ohjelmakoodin version hallintaan saatetaan käyttää CVS- versionhallintaohjelmaa. Projektiryhmä arvioi ohjelman käytön kannattavuutta ja päättää sen käytöstä myöhemmin. Jos projektiryhmä siirtyy CVS:n käyttöön, päivitetään projektisuunnitelmaa tältä osin.

 

Koska ohjelmointiin käytetään erilaisia ympäristöjä, hoidetaan ohjelmakoodin version hallinta käsin. Kukin huolehtii versionumeroinnin päivittämisestä. Jos ohjelmakoodin tehdään suurempia muutoksia, esimerkiksi korvataan luokan metodin toteutus kokonaan toisella, on huolehdittava, että vanhasta versiosta on kopio. Hakemistorakenne sovitaan vielä yhdessä ryhmän kanssa, yksinkertainen menetelmä on seuraava:

Jokaisen pakkauksen hakemistossa on alihakemisto arkisto, jonne kopioidaan aina ennen muutosta edellinen versio, siten, että tiedoston pääte on ko. tiedoston versionumero. Lisäksi jokaisesta toimivasta pakkauksesta voidaan ottaa talteen kopio Esimerkiksi oheisessa kuvassa on hakemistorakenne Schedule-pakkaukselle. Arkisto-hakemistossa on eri luokkien versioita, ja lisäksi koko pakkauksesta on ensimmäinen toimiva kokonaisuus hakemistossa ver1.0.

 

schedule

                        DayPane.java

                        WeekRow.java

                        Schedule.java       

                 

                  arkisto

                        DayPane.java.v1.0

                        DayPane.java.v1.1

                        DayPane.java.v1.2

                        WeekRow.java.v1.0

                        WeekRow.java.v1.1

                        Schedule.java.v1.0

                        Schedule.java.v1.1

                        Schedule.java.v2.0

 

                  ver1.0                        

                        DayPane.java

                        WeekRow.java

                        Schedule.java                      

Dokumentit       

Jokaiselle dokumentille on oma hakemistonsa, johon voidaan kerätä eri kirjoittajien tekemät dokumentin osaset, ja näistä kootut dokumentit. Dokumenttien versionumero lisätään aina dokumentin nimeen. Jokainen dokumentin kirjoittaja toimittaa oman osansa dokumentista dokumentin hakemistoon, ja nimeää sen siten, että siitä käy ilmi osasessa olevat dokumentin luvut sekä kirjoittajan nimi, esimerkiksi suunnitteluraportti_luku_6_(teemu).doc.


          7    Dokumentin versiot                                                                     

 

Versio

Tekijä

Päiväys

Muutokset

1.0

Kaikki

20.9.1999

Alustava projektisuunnitelma, palautettu asiakkaalle.

1.1

Jussi Laukanen

22.9.1999

Versiotaulukon lisäys, Gantt-taulukkoon resurssit.

1.2

Kaikki

28.9.1999

Korjaukset ohjaajien palautteen mukaisesti.

1.3

Jussi Laukkanen

2.10.1999

Pieniä viilauksia

1.4

Päivi Kero

26.10.1999

Muutettu HTML:ksi ja lisätty luku 5.6.