Internet-TV

http://www.niksula.cs.hut.fi/projects/ohtace/documents/laatu/laatutilanne_proto2.html
CVS info: $Id: laatutilanne_proto2.html,v 1.4 1997/03/17 14:31:33 tsalste Exp $


Laatutilanne Proto 2 -vaiheen jälkeen

Seuraavassa käsitellään Internet-TV -projektin laatutilannetta maaliskuun puolivälissä kiinnittäen päähuomio laatudokumentissa määriteltyihin laatumittareihin.

Laadun lajit

Pieni kertaus laadun eri lajeista:
  1. Lopputuotteen laatu = työssä valmistettavan tietokoneohjelman laatu.
  2. Prosessin laatu = kurssin kuluessa tapahtuvien suoritusten, organisoinnin jne. laatu. Prosessin laatu vaikutaa voimakkaasti lopputuotteen laatuun.
  3. Kurssimenestys.

    Laatuominaisuudet ja niiden tila

    Seuraavassa luetellaan aikaisemmin määritellyt laatuominaisuudet ja tämänhetkinen laatutaso esitellään kursiivilla.

    Prosessin laatuominaisuudet

    1. Edistyvyys

    Aikataulunmukaisuus
    Projekti on edistynyt verkkaisesti. On jälleen havaittavissa selvää takarajapainotteisuutta.
    Suunnitelmanmukaisuus
    Kaikkia suunnitelmia ei ole saatu toteutetuksi.

    Ohjelman ominaisuuksia on karsittu aikataulussa pysymiseksi. Mpeg-vastaanotto on asiakkaan suostumuksella jätetty ohjelmasta. Samaten joitain käyttöliittymäryhmän ehdottamia (lisä)ominaisuuksia (kanavien tekstihaku, pikavalikon kanavien valinta) on toteuttamatta.

    Yhteistyö
    • Ryhmän jäsenet ovat jatkuvassa yhteydessä toisiinsa
    • Ryhmä on tiiviissä yhteydessä käyttöliittymäryhmään
    • Ryhmä on tiiviissä yhteydessä ohjaajaansa
    Yhteistyö ryhmän sisällä on vähentynyt. Mm. koko ryhmän yhteisiä tapaamisia ei ole järjestetty. Sen sijaan osaryhmän tapaamisia on pidetty.

    Käyttöliittymäryhmään ei ole oltu yhteydessä.

    Ryhmä on ollut yhteydessä ohjaajaansa yhden seurantakokouksen ajan ja lisäksi sähköpostitse. Tässä vaiheessa ohjaajasta on ollut hyötyä erityisesti ohjelmointiteknisissä yhsityiskohdissa. Ohjaaja tuntuu tyytyvaiselta ryhman toimintaan.

    2. Hallittavuus

    Dokumentointi
    Dokumentointi on suoritettu kattavasti erityisesti prosessin osalta. Sen sijaan ohjelmakoodin dokumentointi on puutteellista, mitä on korjattu. Tästä lisää tuonnempana.

    3. Mielekkyys

    Ryhmähenki
    Ryhmähenki ja avoimuus ovat pysyneet aikaisemmalla korkeahkolla tasollaan.
    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ä
    Ryhmä ei ehkä enää tunne aivan täydellistä sitoutumista täydelliseen lopputuotteeseen, mikä ilmenee lähinnä siinä, että ryhmän keskuudessa ei ole koettu halukkuutta nostaa tavoitetasoja enää jo päätetyistä.

    Kaikki sen sijaan tuntuvat sitoutuneen selviämään projektista kunnialla läpi ja hoitamaan osansa kunnolla, mikäli työ- ja opiskelukiireiltään vain suinkin selviävät.

    Työnjako on ilmeisestikin ollut sellainen, että jäsenet ovat kyenneet suoriutumaan tehtävistään.

    Lopputuotteen laatuominaisuudet

    1. Käytettävyys

    Helppokäyttöisyys
    Tähän on pyritty kaikin keinoin. Lopputulos ei aivan vastaa suunnitelmia. Näppäimistöltä käyttö on hidasta ja kankeaa. Lukutaidoton ei välttämättä kykene ohjelmaa käyttämään. Mm. virheilmoitukset on niiden monimutkaisuuden vuoksi osittain pakko toteuttaa tekstuaalisesti, jolloin ne eivät ole kaikkien ymmärrettävissä.

    Pyydämme käyttöliittymäryhmältä vielä lopputuloksen arviointia ja korjausehdotuksia.

    Vaivattomuus
    Helppokäyttöisyys ja vaivattomuus kulkevat käsi kädessä. Vaivattomuutta haittaa erityisesti näppäimistökäytön kömpelyys. Käytettyjen tietokoneiden hitaus lisää kömpelyyttä.
    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.
    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 selviä puutteita. 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 liialti.

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

    Asennettavuus
    Asennusohjelman teko on aloitettu, ja vaikuttaa siltä, että ohjelman asennuksen pystyy ensikertalainenkin hoitamaan. Sen sijaan ohjelman edellyttämän multicast-reitityksen saannissa voi tulla ongelmia kokeneemmallekin. Lisäksi ohjelman asentaminen lähdekoodista on hidasta ja hankalaa.

    2. Luotettavuus

    Virheettömyys
    Ohjelma ei tällä hetkellä täytä virheettömyyden kriteerejä korjausyrityksistä huolimatta. Virheiden poistamiseen tullaan panostamaan jatkossa huomattavasti resursseja. Siihen olisi kuitenkin täytynyt keskittyä enemmän jo tässä vaiheessa.

    Virheiden korjaamista haittaa 2 seikkaa:

    1. Ohjelman kehitysprosessin hitaus. Kääntäminen ja kanavatietojen odottelu on hidasta.
    2. 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. Olemme suunnitelleen beta-version julkistamista saadaksemme enemman kayttokokemusta ja loydettyja virheilmoituksia.
    Virhetilanteiden käsittely
    Tällä hetkellä ohjelma ei kaadu läheskään joka virheeseen (Tcl:n ominaisuus). Sen sijaan osa virheilmoituksista (Tcl) on hyvin pitkiä ja vaikeaselkoisia. Toisaalta osa virheista on hyvin lyhyita ja ytimekkaita (core dump).
    Ennakoitavuus
    • 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 onnistuneesti Niksulan Indyillä ja O2:lla seka morphine.tcm.hut.fi:lla, jotka kaikki ovat Unix-koneita. Tavoitteena tyossa olikin toimivuus nimenomaan Unix-jarjestelmassa. Muissa kayttojarjestelmissa ei ole (ainakaan viela) kokeiltu.

    Ohjelma toimii ja kayttaytyy samalla tavoin eri koneilla. On kuitenkin oletettavaa, ettei ohjelma toimi sellaisenaan muissa kayttojarjestelmissa.

    3. Siirrettävyys

    Lähetysriippumattomuus
    • Vastaanottaa tavallisimpia kuvaformaatteja
    • Vastaanottaa tavallisimpia ääniformaatteja
    Eri ääniformaattien vastaanotto on kunnossa, sen sijaan kuvaformaateista vastaanotettavissa on vain H.261. MPEG-vastaanoton toteuttamisesta on luovuttu.
    Työkalujen siirrettävyys
    Koodin siirrettävyys
    Sekä työkalut että koodi ovat käsittääksemme siirrettävää. Siirtämistä ei kuitenkaan ole kokeiltu, joten siirrettävyyttä emme voi luvata ainakaan vielä tässä vaiheessa. Ainakin Windows-järjestelmään siirto tullee kohtaamaan vaikeuksia, joita emme voi kokemuksen puutteessa kuin arvailla.
    Työn siirrettävyys
    Suoltamamme ohjelmakoodi on oman arvion mukaan hieman yleistajuisempaa kuin se, mistä aloitimme. Kuitenkin 3 eri ohjelma (vic, vat ja sdr) yhdistäminen yhdeksi kokonaisuudeksi tarkoittaa myös sitä, että kokonaisuuden hallinta on paljon vaikeampaa kuin 3 erillisen ohjelman.

    Käytännössä työ ei ole kovinkaan hyvin siirrettävissä toisille tekijöille, vaan mahdolliseen siirtoon olisi uhrattava todella paljon resursseja.

    4. Ylläpidettävyys

    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.

    Tcl-koodi oli alunperin hyvin vaikeatajuista ja niukalti kommentoitua, lisäksi moduulijako on osin hankala.

    Ryhmän tekemät lisäykset on pyritty merkitsemään #ITV-koodein, ja myös koodin kommentointiin on kiinnitetty huomiota. C++ -luokat dokumentoitiin jo tyon alkuvaiheessa. Tcl-moduulit on myos vastikaan dokumentoitu siten, etta tarkeimmat moduulit on kuvattu aliohjelmatasolla asti. Lisaksi tarkeimmat globaalit muuttujat on kuvattu tarkasti.

    Tcl-koodin kuvaus

    Yhdenmukaisuus
    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. Ryhma on dokumentoinut rajapintoja selkeammiksi.

    Laadun valvonta, testaus

    Ohjelmatyön kuluessa järjestetään kolmenlaisia laadunvalvontatapahtumia: ohjelmatestejä, käyttötestejä, ja koodikatselmuksia. Näistä on tähän mennessä järjestetty ainoastaan ohjelmatestejä, joista on mainittu toisaalla.

    Laatuvalvonnan kannalta testausta on yhä suoritettu aivan liian vähän. Testaukseen on jatkossa panostettava.

    Käyttötestaus tarkoittaa lähinnä käyttöliittymän ja käytettävyyden testaamista. Alunperin ryhmällä oli käsitys, että käyttöliittymäryhmä suorittaisi käyttötestausta. Käyttöliittymäryhmän ohjelmaan varsinaista käyttötestiä ei kuitenkaan kuulu. Sen sijaan ryhmä tulee suorittamaan käyttöliittymän arvioinnin.


    Yhteenveto

    Yhteenvetona voi todeta, että laatuasioihin on viela kiinnitettävä huomiota projektin loppuvaiheessa. Lopputuotteen laatutaso ei vielä vastaa kaikkia ohjelmatyön alussa asetettuja vaatimuksia, mutta maaratietoisella tyolla se saadaan niita vastaamaan.


    Dokumentin laati: Tuomas Salste
    Viimeksi päivitetty: 17.3.97

    Ohjelmatyön pääsivu

    Ohjelmatyöryhmän osoite: ohtace@tcm.hut.fi
    Käyttöliittymäryhmän osoite: lysm@cs.hut.fi