http://www.niksula.cs.hut.fi/projects/ohtace/documents/laatu/laatu_loppu.html
CVS info: $Id: laatu_loppu.html,v 1.3 1997/04/30 07:26:13 mtuisku Exp $
Aikataulunmukaisuus
- Ohjelmatyö pysyy kurssin aikataulussa
- Dokumenttien palautukset ja demot suoritetaan ajoissa
Pääosin projekti pysyi aikataulussaan. Kuitenkin koko projektin ajan oli havaittavissa selvää takarajapainotteisuutta - monet tehtävät saatiin suoritetuksi vasta viime hetkillä.SuunnitelmanmukaisuusKaikki palautukset ja demot saatiin kuitenkin suoritetuksi ajoissa.
- Kussakin vaiheessa suoritetaan ne toimenpiteet, jotka on suunniteltu
Pääosin projekti eteni suunnitelmien mukaisesti. Aivan kaikkia projektin alussa tehtyjä suunnitelmia ei kuitenkaan saatu toteutetuksi. Työn alussa priorisoimme tehtävät tasoille 1-3. Kaikki prioriteetin 1 toiminnot saatiin hyvin toteutetuksi, mutta 2- ja 3-prioriteetin toimintoja jätettiin tekemättä.YhteistyöTekemättä jättäminen oli täysin suunnitelman mukaista, sillä 2- ja 3- prioriteetin toiminnot oli suunniteltu toteutettaviksi ajan ja tekniikan näin salliessa.
Ajanpuutteen vuoksi pois jääneitä 2-3-prioriteetin toimintoja olivat mm. tulevien ohjelmien selaus, värisävyjen säätö ja pysäytyskuva. Nämä ovat mahdollisia jatkokehityksen tavoitteita. Teknisten syiden vuoksi pois jätettiin useiden kuvaformaattien (MPEG) vastaanotto (MPEG-kuvalähetyksiä ei saatavilla). Projektin kuluessa teknisesti tarpeettomiksi katsottiin vastaanoton puskurointi sekä vastaanoton nopeuden ja laadun valinta.
Joitain käyttöliittymäryhmän projektin kuluessa ehdottamia (lisä)ominaisuuksia (kanavien tekstihaku, pikavalikon kanavien valinta) on työmäärän säästämiseksi jätetty toteuttamatta ja keskitytty perusominaisuuksien mahdollisimman hyvään toteuttamiseen.
Toimintojen poisjättö on tapahtunut projektin ohjaajan ja asiakkaan suostumuksella.
- Ryhmän jäsenet ovat jatkuvassa yhteydessä toisiinsa
- Ryhmä on tiiviissä yhteydessä käyttöliittymäryhmään
- Ryhmä on tiiviissä yhteydessä ohjaajaansa
Ryhmän sisäinen kommunikointi suoritettiin sähköpostitse sekä ryhmätapaamisin. Sähköposti oli selvästi yleisempi ja käyttökelpoisempi väline mm. aikataulujen yhteensovittamisen takia.Käyttöliittymäryhmän kanssa yhteistyö takelteli ohjelmatyöryhmästä riippumattomista syistä. Ohjelmaa suunniteltaessa käyttöliittymäryhmältä kuitenkin saatiin paljon hyödyllisiä neuvoja ja ehdotelma käyttöliittymäksi. Sen sijaan projektin loppupuolella yhteydenpito oli vähäisempää.
Ryhmä on ollut yhteydessä ohjaajaansa lähinnä ryhmätapaamisten yhteydessä, joita on pidetty 2-3 yhden vaiheen aikana.
Kokouksista on laadittu kokousmuistiot.
Dokumentointi
- Kattavat dokumentit
- Ymmärrettävät dokumentit
Ohjelmatyö dokumentoitiin varsin kattavasti erityisesti prosessin osalta. Lopputuloksena syntynyt ohjelma dokumentoitiin myös käyttö- ja ylläpito-ohjein sekä koodidokumentein (ITV-source, Tcl/Tk-liittymä ja Tekninen määrittely).Dokumentointi suoritettiin jossain määrin laajemmin kuin mitä ohjelmatyökurssin ohjeet vaativat (laajennuksina kokousmuistiot, laatudokumentit sekä tarkka lähdekoodidokumentointi tässä työssä synnytetystä koodista).
Työn aikana pysyttiin melko hyvin periaatteessa, jonka mukaan kukin dokumentoi oman työnsä itse eikä sälytä vastuutaan muille.
Ryhmähenki
- Avoin ja vapaa ryhmähenki
- Ryhmä "vetää yhtä köyttä"
Ryhmähenki pysyi koko projektin ajan varsin hyvänä.Sitoutuminen
- Ryhmän jäsenet sitoutuvat yhteisiin tavoitteisiin
- Tavoitteet ovat sellaisia, joihin kaikki voivat sitoutua
- Työnjako on sellainen, että jäsen kykenee tehtävistään suoriutumaan
- Kullakin on oma vastuualueensa, josta hän on itse ollut mukana päättämässä
Kokonaisvaltainen sitoutuminen täydelliseen lopputuotteeseen ei kestänyt koko projektin ajan. Tämä ilmeni lähinnä siinä, että ryhmän keskuudessa ei koettu halukkuutta nostaa tavoitetasoja enää jo päätetyistä. Ryhmässä esiintyi myös halukkuutta jättää joitain vähemmän tärkeitä lisätoimintoja (kuten tulevien ohjelmien selaus) pois projektista.Kaikki sen sijaan hoitivat osuutensa kunnolla, vaikkakin työ- ja opiskelukiireet monesti olivat tuottaa hankaluuksia. Työnjako oli ilmeisestikin sellainen, että jäsenet kykenivät suoriutumaan tehtävistään.
Pientä motivaationpuutetta tuotti kahden projektin jäsenen tottumattomuus Unix-maailmaan.
Helppokäyttöisyys
- Nopea oppia
- Helppo muistaa
- Johdonmukainen
Lopputulos ei aivan vastannut suunnitelmia, vaikkakin on hyvinkin kelvollinen. Ohjelmassa on vain vähän nappuloita ja säätöjä, komentoriviparametrejä käyttäjä ei tarvitse, eikä hänen myöskään tarvitse muistella monimutkaisia näppäinyhdistelmiä. Sen sijaan näppäimistöltä käyttö on muuten hidasta ja kankeaa erityisesti koneilla, joilla on puutteellinen suorituskyky.VaivattomuusProjektin alussa asetettiin toivomus, että lukutaidotonkin osaisi käyttää ohjelmaa. Tähän ei aivan päästy. Syy siihen on mm. se, etjtä virheilmoitukset on niiden monimutkaisuuden vuoksi osittain pakko toteuttaa tekstuaalisesti ja se, että kanavavalikko haluttiin näyttää tekstimuodossa.
- Nopea käyttää
- Toiminnot helposti saatavilla
- Mahdollista käyttää ainoastaan yhdellä ohjauslaitteella (hiiri, näppäimistö)
Helppokäyttöisyys ja vaivattomuus kulkevat käsi kädessä. Vaivattomuutta haittaa erityisesti näppäimistökäytön kömpelyys. Sen sijaan hiirellä käyttö on kohtuullisen vaivatonta. Hiirellä käytettäessä ei käyttöön vaadita näppäimistöä lainkaan. Näppäimistöltäkin voidaan tehdä useimmat toiminnot, mutta kanavanvaihto on helpompaa hiirellä.Muokattavuus
- Tallettaa annetut asetukset uudelleenkäyttöä varten
- Ohjelmaikkunan koko säädettävissä
- TV-ruudun koko säädettävissä
- Äänenvoimakkuus asetettavissa
- Kuvaparametrit annettavissa
Nämä on kaikki toteutettu ja havaittu käyttökelpoisiksi.Suorituskyky
- Ohjelma toimii nopeasti
- TV-kuva liikkuu jouhevasti
- ääni kuuluu katkeilematta
- Kuva ja ääni ovat synkronissa keskenään
- TV:n katselu ei kohtuuttomasti hidasta muiden ohjelmien toimintaa
Suorituskyvyssä on puutteita nykyisillä laitteistoilla. Ohjelma on selvästi hitaan oloinen ainakin Niksulan koneilla. TV-kuva piirtyy nykien, ääni kuuluu katkeillen, ja synkronissa on todella paljon toivomisen varaa. Sen sijaan TV-ohjelmien katselu ei hidasta muiden ohjelmien toimintaa kohtuuttomasti.AsennettavuusOngelmaan emme ehdota muuta ratkaisua kuin nopeampien koneiden hankintaa. Niksulan uudessa O2-koneessa ohjelma toimiikin kohtuullisesti, muttei vieläkään nopeasti. Ohjelmatyön asiakkaan nimenomaisesti suorituskykytoive oli, että ohjelman ei tarvitse vielä nykyisillä koneilla toimia riittävän nopeasti.
- Ohjelman asentaminen onnistuu vähillä valinnoilla (mieluiten pelkää Enter-nappulaa painamalla)
- Asentaminen ei vaadi teknistä tuntemusta (käyttäjäryhmä "Tavallinen käyttäjä" pystyy asentamaan ohjelman)
Asennuksen hoitaa yksinkertainen asennusohjelma, jonka käyttäjän ei tarvitse tuntea tietotekniikkaa syvällisesti. Asennusohjeiden avulla ohjelman asennuksen pystyy ensikertalainenkin hoitamaan, sillä asennus ei vaadi minkäänlaisia teknisiä parametreja tms.Sitä vastoin ohjelman edellyttämän multicast-reitityksen saannissa voi tulla ongelmia kokeneemmallekin. Tämän projektin aihepiiriin ei kuitenkaan kuulunut multicast-reitityksen asentaminen.
Ohjelman asentaminen lähdekoodista on hidasta ja hankalaa, mutta lähdekoodin asentamisen suhteen ei projektissa asetettukaan erityisiä vaatimuksia. Ohjelmaa tullaan jakamaan valmiiksi käännettynä eri ympäristöille, eikä loppukäyttäjä tarvitse lähdekoodia laisinkaan.
Virheettömyys
- Ohjelma toimii kuten on suunniteltu
- Ohjelma toimii kuten sen annetaan ymmärtää toimivan
- Ohjelma ei sisällä viruksia
Ohjelman virheettömyyteen on kiinnitetty runsaasti huomiota erityisesti projektin loppuvaiheessa mm. testauksella. Tästä enemmän tuonnempana.Virhetilanteiden käsittelyVirheiden poistoa haittasi 4 seikkaa:
Näistä ongelmista huolimatta ohjelma täyttää hyvin virheettömyyden kriteerit.
- Ohjelman kehitysprosessin hitaus. Kääntäminen oli hidasta.
- Tcl-ohjelmasta ei saa käännösaikaisia virheitä, joten virheiden löytyminen on kiinni ajonaikaisesta testauksesta. Ajonaikaisella testauksella ei kuitenkaan välttämättä saada edes kaikkia (mahdollisesti harvoin esiintyviä) syntaksivirheitä kuriin.
- Lähdekoodin määrä on todella suuri.
- Alkuperäistä lähdekoodia on ollut tekemässä moni eri ihminen, ja dokumentointi on ollut heikkoa.
- Ohjelma ei kaadu virhetilanteessa
- Ohjelma yrittää toipua tietoliikenneyhteyksien virheistä
- Ohjelma antaa ymmärrettäviä virheilmoituksia ja kertoo, mitä seuraavaksi on tehtävä
- Ohjelma ei haittaa muiden ohjelmien toimintaa
Ajonaikaisia virheitä ohjelmaan voi tulla käyttäjästä riippumattomista syistä. Tällaisia ovat mm. näytön värimäärän vähäisyys, virheellinen kuva- tai äänidata taikka lähetyksen katkeaminen. Käytännössä käyttäjä itse ei voi antaa ohjelmalle esim. vääriä parametreja tai painaa väärää nappulaa.EnnakoitavuusYllämainittuihin ongelmiin on pyritty varautumaan ennakolta. Kaikki tekniset virheilmoitukset eivät kuitenkaan aina ole tekniikkaa tuntemattoman henkilön helposti tulkittavissa.
Ohjelma kykenee tavallisesti toipumaan tietoliikenneyhteyksien häiriöistä. Käytännössä tämä näkyy siten, että kuva/ääni pysähtyy ja jatkuu hetkisen kuluttua. Haittapuolena on, että kuvaruutu voi näyttää varsin sekavalta, jos lähetys takkuilee.
Ohjelman mahdollinen virheellinen toiminta ei muiden ohjelmien toimintaa, esim. kaada konetta ainakaan Unix-järjestelmässä.
- Ohjelma toimii samanlaisissa tilanteissa samalla tavoin
- Ohjelma toimii käyttöympäristöstä ja sen muutoksista huolimatta mahdollisimman yhdenmukaisesti
Tällä hetkellä ohjelmaa on kokeiltu Niksulan Indyillä ja O2:lla sekä tcm-laboratorion morphinella. Ohjelmaa on testattu jokaisessa näistä ympäristöistä ja se toimii niissä.Käyttöliittymä toimii suhteellisen ennakoitavasti.
Käyttöympäristön muutoksista näytönohjaimen värimäärällä on vaikutusta ohjelman toimintaan. Mikäli värejä on liian vähän, näytetään kuva mustavalkoisena. Täysvärinäytöllä (24 bittiä) kirkkauden säätö puolestaan ei ole mahdollista (johtuu näytönohjaimesta).
Unix-järjestelmissä olevan LANG-ympäristömuuttujan vaikutus ohjelman toimintaan on otettu huomioon. Tämä muuttujahan määrää mm. käytetäänkö järjestelmässä desimaalipistettä vaiko -pilkkua, mikä saattaa aiheuttaa virheitä liukulukujen käsittelyssä. Internet TV toimii oikein riippumatta LANG-asetuksen arvosta.
Kääntäminen lähdekoodista on erilaista eri ympäristöissä. Havaitut eroavaisuudet on dokumentoitu käännösohjeisiin.
Lähetysriippumattomuus
- Vastaanottaa tavallisimpia kuvaformaatteja
- Vastaanottaa tavallisimpia ääniformaatteja
Eri ääniformaattien vastaanotto on kunnossa. Sen sijaan tavallisista kuvaformaateista vastaanotettavissa on vain H.261. MPEG-vastaanoton toteuttamisesta on luovuttu mm. siksi, koska MPEG-lähetyksiä ei ollut saatavilla.Työkalujen siirrettävyysKäyttäjälle käytetyt erilaiset lähetysformaatit eivät aiheuta toimenpiteitä.
- Käytetyt työkalut on siirretty tai hyvin helposti siirrettävissä uusiin toimintaympäristöihin
Käytetyistä työkaluista sekä Tcl/Tk että C++ on siirretty tämän hetken tärkeimpiin käyttöjärjestelmiin (mm. monet Unixit ja Windows).
Koodin siirrettävyys
- Lähdekoodi täyttää ohjelmointikielten standardit (kuten ANSI C++)
- Lähdekoodi on laitteisto- ja käyttöjärjestelmäriippumaton
- Ohjelmatyön rakenne on tiedostojärjestelmäriippumaton
Olemme noudattaneet standardeja parhaan kykymme mukaan. Lähdekoodissa ei ole laitteistoriippuvia piirteitä.Työn siirrettävyysKäyttöjärjestelmä- ja tiedostojärjestelmäriippumattomuus on toteutunut siten, että lähdekoodi on sellaisenaan siirrettävissä eri Unix-ympäristöihin. Windows-ympäristöön siirryttäessä saattaa esiintyä joitain pienehköjä ongelmia (kuten pisteellä alkavien tiedostonimien käyttö), joiden ratkaisemiseen emme tässä projektissa ole puuttuneet. Projektin alussa tähdättiinkin ohjelman toimimiseen nimenomaan Unix-ympäristössä. - Ohjelmiston siirto Windows-ympäristöön voisi olla mahdollinen jatkokehityksen aihe.
- Ohjelmatyö voidaan siirtää toisille tekijöille
Oma ohjelmakoodimme on oman arvion mukaan yleistajuisempaa kuin se, mistä aloitimme. Käytetyt muuttujien jne. nimet on pyritty luomaan helppotajuisiksi, koodia on kommentoitu ja koodista on laadittu laajoja dokumentteja. Nimet ja kommentit on laadittu englanniksi.3 eri ohjelman (vic, vat ja sdr) yhdistäminen yhdeksi kokonaisuudeksi tarkoittaa kuitenkin myös sitä, että kokonaisuuden hallinta on paljon vaikeampaa kuin 3 erillisen ohjelman. Käytännössä siirtoon olisi uhrattava paljon resursseja. Työtä mahdollisesti jatkavien uusien kehittäjien on syytä varata koodiin ja sen rakenteeseen tutustumiselle paljon aikaa, sillä koodimäärää ei missään nimessä voi pitää helposti omaksuttavana.
Ymmärrettävyys
- Ohjelmakoodin rakenne on selkeä
- Ohjelmakoodia voi lukea ja ymmärtää
Kuten mainittu, ohjelmakoodin rakenne ei ole erityisen selkeä, mistä moitteet kuuluvat paitsi alkuperäisen koodin tekijöille myös hieman ryhmälle itselleen. C++ -koodin yleisvaikutelma on selkeämpi kuin Tcl-koodin, mikä johtuu erityisesti siitä, että C++ -puolella on käytetty hyväksi olio-ohjelmointia.YhdenmukaisuusTcl-koodi oli alunperin hyvin vaikeatajuista ja niukalti kommentoitua, lisäksi moduulijako on osin hankala. Tcl-kielen sekava syntaksi ja huono rakenteisuus hankaloittavat näin suurten koodimäärien hallintaa.
Ryhmän tekemät lisäykset on pyritty merkitsemään
#ITV
-koodein, ja myös kommentointiin on kiinnitetty huomiota. Helpointa Tcl-koodiin tutustuminen lienee koodidokumentin avulla.
- Ohjelman eri osat on koodattu yhdenmukaisin periaattein
Yhdenmukaisuus ilmenee tässä projektissa siten, että alkuperäisten vat- ja vic-ohjelmien tekijät ovat olleet samoja ja ohjelmoinnissa on noudatettu yhtenäisiä periaatteita. Ohjelmat sisältävät pitkälti yhteisen luokkahierarkian.Modulaarisuus
- Ohjelma koostuu itsenäisistä osista
- Ohjelmointirajapinnat ovat selkeitä
Kuten yllä mainittiin, alkuperäisen koodin rakenne on osin sekava ja rajapinnat huonosti dokumentoituja. Ohjelmatyöryhmä on parantanut tilannetta dokumentoimalla C++ -koodin luokkahierarkian ja Tcl- ja C++ -koodin rajapinnat.Ohjelman modulaarisuus on sikäli hyvä, että koska ohjelma on koostettu 3 eri ohjelmaa yhdistelemällä, nämä osat ovat pysyneetkin erillään. Näin ollen ohjelmointivastuu on kyetty jakamaan seuraaviin osiin varsin hyvin: äänen vastaanotto, kuvan vastaanotto, kanavatietojen käsittely ja käyttöliittymä.
Laatuvalvonnan kannalta ohjelmaa testattiin varsin kattavasti.
Oli myös tarkoitus, että käyttöliittymäryhmä arvioisi ohjelman käytettävyyttä. Tämä jäi kuitenkin ryhmältä tekemättä.
Jälkikäteen ajateltuna ryhmän saamat arvosanat eivät tulleet mitenkään suurina yllätyksinä. Tosin aina ne olisivat korkeampia voineet tietenkin olla. Arvosanaa laski erityisesti kurssin alkuvaiheessa epätietoisuus siitä, mitä kurssi oikein vaatii. Toinen hankaloittava tekijä oli se, että projekti toteutettiin Unix-ympäristössä, josta kahdella ryhmän jäsenellä ei ollut mainittavaa aikaisempaa ohjelmointikokemusta.
Hyvään laatuun päästiin erityisesti siksi, että ryhmä tiedosti laadunvalvonnan ja laadun tuotantoprosessin tärkeyden sekä virheiden korjaamisen merkityksen. Usein näkee ohjelmia, jotka on - esim. markkinoiden paineessa - kyhätty kiireessä kasaan, lyöty ominaisuuksia ominaisuuksien päälle ja heitetty puolivalmis tuote käyttäjien riesaksi. Internet-TV ei ole tällainen tuote. Internet-TV sisältää TV:n katselun perustoiminnot, jotka on hyvin toteutettu.
Ohjelmatyöryhmän osoite: ohtace@tcm.hut.fi