Yliopiston etusivulle Suomeksi Inte
på svenska No
english version available
Helsingin yliopisto Tietojenkäsittelytieteen laitos
 

Tietojenkäsittelytieteen laitos

581359 Ohjelmistoprosessit ja ohjelmistojen laatu (4 op) - Kevät 2011

1. Yleistä

Kurssi esittelee modernien ohjelmistoprosessien, ohjelmistojen laadun ja laadunvarmistuksen perusteet. Kurssin käyneet saavat valmiudet modernin ohjelmistotuotannon ja ohjelmistojen laadunhallinnan perusteisiin. Kurssin käyneiden on helppo syventää opittuja tietoja alan ammattikirjallisuudesta ja tieteellisistä julkaisuista.

Kurssi on tietojenkäsittelytieteen maisteriopintojen (syventävien opintojen) valinnainen ohjelmistojärjestelmien erikoistumislinjan kurssi, joka on tarkoitettu erityisesti ohjelmistotekniikkaan suuntautuville. Kurssilla edellytetään, että Ohjelmistotuotanto ja Ohjelmistotuotantoprojekti on suoritettu.

2. Ilmoitusasioita

Kurssi on alkanut tiistaina 15.3.2011 klo 10.15 salissa CK112.

3. Luennot (periodi IV)

  • Luentoajat: 15.3.-28.4., ti 10-12, to 10-12, sali CK112.
  • HUOM! Tiistaina 19.4. ei ole luentoa!
  • Pääsiäisloman takia ei ole luentoja eikä harjoituksia torstaina 21.4. eikä tiistaina 26.4.
  • Luennoija: Jukka Paakki

4. Kurssin suoritustavat

Kurssin voi suorittaa joko (1) kurssimuotoisesti tai (2) kokeella.

  • Kurssimuotoinen suoritus koostuu (1) harjoitustyöstä ja (2) kotikokeesta. Harjoitustyöstä voi saada 0-15 pistettä ja kotikokeesta 0-45 pistettä, eli yhteensä enintään 60 pistettä. Kotikoe koostuu kolmesta tehtävästä, joista kustakin voi saada 0-15 pistettä. Kotikoetehtävät ovat henkilökohtaisia ja ne julkistetaan tällä sivulla. Tehtävät ovat tavanomaisia koetehtäviä laajempia, ja niihin vastataan esseemuodossa. Kotikoetehtävien ratkaisemiseen saa käyttää mitä tahansa tietolähteitä, mutta suora plagiointi on tietenkin kiellettyä. Sähköpostilla luennoijalle palautettavien kotikoetehtävävastausten takarajat ovat maanantai 4.4., maanantai 18.4. ja maanantai 2.5.
  • Kurssista järjestetään myös normaaliin tapaan kurssikoe ja erilliskokeita. Kokeet perustuvat luentomateriaaliin eikä niiden arvostelussa oteta huomioon harjoitustyötä (eikä kotikoetta).

5. Harjoitustyö

Harjoitusryhmät: 22.3.-28.4., ti 14-16, to 14-16, sali B119 ( Jukka Paakki)

HUOM! Tiistaina 19.4. ei ole harjoitusryhmän tapaamista! Tiistain ryhmään ilmoittautuneet voivat tulla torstain ryhmään 28.4.

Harjoitustyössä 3-4 hengen ryhmä laatii laitoksen LuK-tutkinnon ohjelmistotuotantoprojekteille laatukäsikirjan. Opiskelijat muodostavat itse ryhmänsä ja ilmoittavat sen kokoonpanon luennoijalle. Ryhmät sopivat itse työnjakonsa ja työtapansa. Ryhmän kaikki jäsenet saavat työstä saman pistemäärän (0-15).

Harjoitustyötä käydään harjoitustilaisuuksissa läpi neljässä vaiheessa, joilla kaikilla on jokin tietty teema. Tilaisuuksissa käsitellään kuitenkin ensi sijassa niitä asioita, joihin opiskelijat kulloinkin tarvitsevat apua. Harjoitustilaisuuksiin osallistuminen ei ole pakollista, vaan niissä voi käydä tarpeen mukaan. Työtä ei palauteta osissa vaan yhtenä kokonaisuutena. Sähköpostilla luennoijalle palautettavan harjoitustyön takaraja on maanantai 2.5.

Laatukäsikirjassa kuvataan, miten laitoksen ohjelmistotuotantoprojekteissa pitäisi toimia (eikä miten niissä nykyisin toimitaan). Täten ryhmillä on varsin vapaat kädet suunnitella ohjelmistotuotantoprojekteissa noudatettava prosessi ja sen mittaamistapa. Laatukäsikirjan suositeltava pituus on 10-30 sivua, ja sen toivotaan sisältävän seuraavia asioita:

  1. Organisaatio
    • Laitoksen yleiskuvaus
    • Opetuksen rakenne (LuK, FM) ja ohjelmistotuotantoprojektien asema siinä
  2. Ohjelmistotuotantoprojektien kuvaus
    • Prosessi: vaiheet, laadittavat dokumentit (kuva)
    • Roolit: valvoja (opettaja), asiakas, projektipäällikkö, projektiryhmän sisäinen jako
    • Aikataulu (miten projekti etenee karkeasti lukukauden aikana)
    • Käytettävät standardit, menetelmät, tekniikat, työkalut, ohjelmointikielet yms.
    • Kokouskäytännöt
    • Kommunikointikäytännöt
    • Versionhallinta
    • Dokumenttien hallinta
  3. Laadunvarmistus
    • Missä vaiheessa tehdään mitäkin
    • Vastuut, roolit: kuka tekee
    • Testaus: milloin testataan ja miten
    • Muut menetelmät (esim. tarkastukset, katselmoinnit): milloin, miten
    • Laatumittarit: milloin mitataan ja mitä; mikä on mitattava laatutekijä
    • Raportit: milloin, millaisia raportteja, kenelle
  4. Riskienhallinta
    • Reagointi huonoksi havaittuun laatuun
    • Mikä muu voi mennä pieleen: riskit
    • Riskien priorisointi
    • Riskien havaitseminen: miten (mittarit)
    • Riskien ratkominen
  5. Liitteet
    • Dokumenttipohjat
    • Tarkastusten ja katselmointien tarkistuslistat
    • Viitteet noudatettaviin standardeihin
    • Viitteet oppikirjoihin yms.
    • Erikoistermit

6. Kotikoe

Kotikoe on henkilökohtainen. Tehtäviin vastataan esseemuodossa palauttamalla vastaus luennoijalle sähköpostitse (jukka.paakki@cs.helsinki.fi) kunkin tehtävän takarajaan mennessä. Paluupostissa tulevat aikanaan tehtävästä saadut pisteet; yksityiskohtaisempaa palautetta saa käymällä tapaamassa luennoijaa. Vastaukset voi kirjoittaa joko suomeksi tai englanniksi. Vastausten suositeltava pituus on 1-5 sivua.

Kotitehtävä 1.
Arvioi käyttämäsi (ei-triviaalin) ohjelman tai ohjelmiston laatua. Kuvaa lyhyesti ohjelman tai ohjelmiston käyttö- ja sovelluskohteet. Käytä arvioinnissa useampaa laatutekijää. Vastaukset on palautettava viimeistään maanantaina 4.4.

Kotitehtävä 2.
Ohjelmistoyrityksessä on päätetty ottaa käyttöön palkitsemisjärjestelmä, jossa työntekijöille maksetaan peruspalkan lisäksi työsuoritusten mukaisia bonuspalkkioita. Ohjelmoijille maksettavat palkkiot on päätetty mitoittaa heidän kirjoittamansa ohjelmakoodin (LOC) mukaan: projektissa maksettavissa olevat bonukset jaetaan kuukausittain ohjelmoijien kyseisen kuukauden aikana kirjoittamien koodirivien suhteessa. Toisin sanoen, jos projektissa on esimerkiksi kaksi ohjelmoijaa, Minttu ja Ville, joista Minttu kirjoittaa huhtikuussa 400 riviä koodia ja Ville 100 riviä koodia, maksetaan Mintulle 80 % ja Villelle 20 % huhtikuun bonuksista. Miten tämä bonuspalkkioiden määräytymisperuste tulee vaikuttamaan yrityksen ohjelmistoprojekteihin? Mitä hyviä ja huonoja puolia tässä LOC-mitoituksessa on? Mikä olisi vielä parempi tapa mitoittaa ohjelmoijille maksettavat bonukset? Vastaukset on palautettava viimeistään maanantaina 18.4.

Kotitehtävä 3.
Markkina-analyysin tehtyään ohjelmistoyritys Softa Oy on päättänyt keskittyä tuottamaan ohjelmistoja yhdelle pääasiakkaistaan. Asiakas toimii turvallisuuskriittisellä sektorilla, joten sen tärkeimmät ohjelmistoille asettamat laatutekijät ovat oikeellisuus (correctness), luotettavuus (reliability) ja eheys (integrity). Koska Softa Oy:n kannattaa käyttää samaa ohjelmistokehystä kaikkien pääasiakkaalleen toimittamien tuotteiden perustana, on se päättänyt lisäksi panostaa erityisesti joustavuuteen (flexibility) ja uudelleenkäytettävyyteen (reusability). Joustavuuden ja uudelleenkäytön ansiosta Softa Oy pystyy toteuttamaan asiakasohjelmistot yhdellä seitsemän hengen tiimillä. Suunnittele ja kuvaa Softa Oy:lle sopiva ketterä prosessimalli, mukaan lukien sen sidosryhmät. Perustele prosessisi. Softa Oy:n autoritäärinen pääjohtaja on kieltänyt Scrumin ja XP:n käytön sellaisenaan, mutta on sallinut niiden (tai niiden osien) käyttämisen yrityksen oman prosessin runkona. Vastaukset on palautettava viimeistään maanantaina 2.5.

7. Normaalit kokeet

  • Kurssikoe: to 5.5. klo 9-12, sali A111.
  • Erilliskoe: pe 17.6. klo 16-20, sali A111 (alustava)
  • Syyslukukaudella 2011 kaksi erilliskoetta
  • Kevätlukukaudella 2012 yksi erilliskoe

8. Kurssimateriaali

Kurssin pääoppikirja:
Craig Larman: Agile & Iterative Development - A Manager's Guide. Pearson Education, 2004. ISBN 978-0-13-111155-4.

Harjoituksissa käytetään lisäksi tieteellisiä julkaisuja ja verkossa olevaa aineistoa.


Jukka Paakki (Jukka.Paakki@cs.Helsinki.FI)