Cleanroom on ohjelmistotuotannossa käytettävä formaaliselvennä ja inkrementaalinenselvennä metodi. Cleanroom-metodin mukaisessa ohjelmistoprosessissa laadukkaita ohjelmistoja pyritään tuottamaan estämällä virheiden syntyminen sen sijaan, että jo syntyneitä virheitä poistettaisiin ohjelmistosta. Metodin nimi on peräisin elektroniikkateollisuudessa käytettävistä puhdastiloista, joilla samankaltaisesti pyritään estämään epäpuhtauksien joutumista tuotteisiin.

Metodin kehitti Harlan Mills 1980-luvulla ja sillä on väitetty saavutetun varsin hyviä tuloksia. Arvostelua metodologiaa ja varsinkin sen testauskäytäntöä kohtaan on esittänyt mm. Boris Beizer.[1]

Keskeiset periaatteet muokkaa

Cleanroom-metodi perustuu seuraaviin periaatteisiin: [2]

Ohjelmien käsittely matemaattisina funktioina muokkaa

Ohjelmia käsitellään matemaattisina funktioina käyttäen apuna laatikkorakenteeseen perustuvaa määrittelyä ja suunnittelua sekä sekvenssipohjaista määrittelyä. Kehitettävän ohjelman ulkoinen käyttäytyminen määritellään täydellisesti yhdistämällä kaikki sen mahdollisesti saamat syötesarjat yhteen vasteeseen. Syötteet määritellään käyttäen apuna edellä mainittua sekvenssipohjaista määrittelyä. Ohjelman ulkoisen toiminnan, eli mustan laatikon, kuvaus kehitetään tilalaatikoksi, joka kuvaa ohjelman kaikkia mahdollisia tiloja. Tilalaatikko kehitetään edelleen läpinäkyväksi laatikoksi, eli mustan laatikon ja tilalaatikon kuvaaman toiminnallisuuden toteuttavaksi algoritmiksi.

Jos ohjelman ulkoinen käyttäytyminen on määritelty täydellisesti ja ohjelman toteutus vastaa tätä mustan laatikon kuvausta, ohjelman voidaan olettaa toimivan virheettömästi.

Ohjelmien tilastollinen testaaminen muokkaa

Tilastollinen testaaminen perustuu siihen, että koska kaikkia ohjelman mahdollisesti saamia syötesarjoja ei yleensä voida testata, on testattava kaikkien syötteiden joukosta satunnaisesti valittua alijoukkoa. Cleanroom-metodin mukaisessa testaamisessa käytetään ohjelman käyttömallin avulla satunnaisesti luotuja testitapauksia. Testauksen perusteella ohjelman voidaan todeta toimivan oikein tietyllä, testaamisen kattavuudesta riippuvalla todennäköisyydellä.

Lähteet muokkaa

  1. Beizer, B.: Cleanroom process model: a critical examination.. IEEE Software, 1997, nro 2, s. 14–16.
  2. Prowell, S.; Trammell, C.; Linger, R.; & Poore, J.: Cleanroom software engineering: technology and process. Addison Wesley Longman, 1999. ISBN 0-201-85480-5.