250 likes | 460 Views
Ohjelmistotekniikka Specifikaatiot ja dokumentointi. Kevät 2002 Päivi Ovaska LTKK/Tite. Speksaamisesta. Speksaamisesta yleisesti Määrittelyvaihe Esimerkki. Motto. "Ohjelmistospesifikaation lukeminen on kuin pyhän kirjan lukemista -
E N D
OhjelmistotekniikkaSpecifikaatiot ja dokumentointi . Kevät 2002 Päivi Ovaska LTKK/Tite
Speksaamisesta • Speksaamisesta yleisesti • Määrittelyvaihe • Esimerkki
Motto "Ohjelmistospesifikaation lukeminen on kuin pyhän kirjan lukemista - jos lukee itsekseen voi ymmärtää miten haluaa, jos pyytää jonkun selittämään ymmärtää miten toinen haluaa, parasta olisi saada jumala(asiakas) paikan päälle selittämään mitä hän tarkoittaa." tekn.yo Jan Laakso projektityökurssilla
Spesifikaatio • Määrittely: Mitä? • Suunnittelu: Miten? • Määrittelyn ja suunnittelun sisältö vaihtelee tilanteesta riippuen esim. työasemasovelluksen määrittely näyttöjä ja toimintoja, sulautettujen ohjelmistot rajapintoja antureihin ja toimilaitteisiin • Määrittely ja suunnittelu (toteutus myös) specifikaatioiden laatimista • Specifikaatio määrittelee, miten vaiheen syötteet, vaatimukset, muutetaan seuraavan vaiheen vaatimuksiksi
Speksattavat asiat (pelkistetty kuva) Spesifikaatio N Spesifikaatio N+1 reunaehdot ja reunaehdot ja rajoitteet rajoitteet ei-toiminnalliset ei-toiminnalliset vaatimukset spesifiointi vaatimukset vaatimukset toiminnalliset toiminnalliset vaatimukset vaatimukset testaussuunnitelmat Verifiointi edellisen version specifikaatiot esimerkiksi tarkastamalla
Täydellisen speksin/vaatimuksen ominaisuuksia • kaikki tarpeellinen, ei mitään turhaa • tarkkuus • virheettömyys • ymmärrettävyys • testattavuus: miten voidaan "mitata", onko vaatimus täytetty • jäljitettävyys: mistä vaatimus on peräisin, miten tärkeä se on
Esimerkkejä • Järjestelmän käytettävissä on 64k-tavun muisti • Luokalla voi siis olla vain yksi luokanvalvoja? • Varaston kiertonopeus kasvaa.
Hyvä speksin ominaisuudet • Sujuva ja selkeä kirjallinen esitys ”Jos kuukauden toteutunut myynti alittaa tavoitteet, tulostetaan raportti, ellei toteutuneen myynnin ja tavoitteen ero ole vähemmän kuin puolet edellisen kuukauden tavoitteen ja toteutuneen myynnin erosta, tai toteutunut myynti alittaa tavoitteen alle 5%” Onko selkeä speksi?
Kuvaustekniikat ja menetelmät • Kuvaustekniikat ”kieliä” erilaisten asioiden ilmaisemiseksi esim. käyttötapauskaaviot, luokkakaaviot, tilakaaviot • suunnittelutyön apuvälineitä, työn tulosten dokumentointi • Menetelmät tapoja soveltaa kuvaustekniikoita, esim. OMT • Huom! UML on standardi ohjelmistojen esitystavasta. Kuvaa, miten oliopohjaisia järjestelmiä kuvataan. Ei liity varsinaisesti mihinkään menetelmään
Menetelmät, välineet • Kuvaustekniikat: luokkakaaviot, tilakaaviot, tapahtumasekvenssikaaviot… • Menetelmä = kuvaustekniikat + ohjeistus • SA/RT, OMT, Octopus, Fusion… • Laatujärjestelmän kannalta dokumentointivetoista => ei suurta väliä, mikä menetelmä tuottaa dokumentit • Välineet: • upper case: mallinnus & dokumentointivälineitä • lower case: sovellusten tuottaminen
Menetelmistä • Informaalit menetelmät • Puoliformaalit menetelmät • Formaalit menetelmät
Informaalit menetelmät • Seinätaulumenetelmät, jossa määriteltävät asiat kuvataan muodostamalla ratkaistavasta ongelmasta suuria selkeitä kaavioita seinälle • Hyviä menetelmiä asiakasvaatimusten keräysvaiheessa
Puoliformaalit menetelmät • Käytettyjen merkintätapojen semantiikka ei kovin tarkasti määritelty, voi tarpeen mukan soveltaa joko enemmän tai vähemmän formaalisti • esimerkkeinä OMT ja SA menetelmät
Formaalit menetelmät • Matemaattisia, usein formaaliin logiikkaan perustuvia täsmällisiä spesifiointimenetelmiä • Kieli, jolla on tarkasti määritelty sanasto, syntaksi ja semantiikka • esimerkkeinä Z, VDM, DisCO • Auttavat spesifioimaan hyvin ja täydellisesti, voidaan todistaa ja todeta oikein toimiviksi • Merkitys käytännön ohjelmistotyössä lähes olematon johtuen vaikeudesta ja epähavainnollisuudesta
Menetelmistä • Yleisesti kaikkiin tilanteisiin soveltuvaa menetelmää ei ole olemassakaan • Käytännön ohjelmistyötyössä menetelmillä ei ole niin suurta merkitystä kuin saattaisi kuvitella • Aloittelevalle ohjelmistosuunnittelijalle menetelmät, ”keittokirjaohjeet” ovat tärkeitä, kokenut ohjelmistosuunnittelija pystyy sovittamaan ne kulloiseenkin tilanteeseen
Dokumentointi • Laadukkaiden dokumenttien tuottaminen on käytännön ohjelmistotyön heikoimpia lenkkejä • Dokumentointimallit ja tarkastusmenettelyt dokumentoinnin helpottamiseksi ja varmistamiseksi • Yhdysvaltain puolustushallinnon projekteissa dokumentoinnin määrä on todettu projektin yleiseksi riskitekijäksi: dokumentointia yhtä ADA-kielen käskyä kohti n. 400 englannin kielen sanaa • Ei dokumentointia dokumentoinnin vuoksi, vaan tilanteen mukaan, sisältö ratkaisee
Dokumentointi (2) 1) Mikä perusdokumentaatio on vähintään oltava: Määrittely- ja suunnitteludokumentaatio, testaussuunnitelma, testausraportti 2) Mitä nämä dokumentit pitävät sisällään • Dokumentaation ylläpidettävyyden kannalta kannattaa välttää tarpeetonta redundanssia: tietty kuvaus vain yhdessä paikassa • Erityisesti suunnitteludokumentaatiossa kannattaa tarkkuustaso valita niin, että ohjelmointivirheiden korjaamien ei välttämättä johda dokumentin päivittämiseen (esimerkiksi vain modulien rajapinnat, modulien sisäinen toiminta kommentteina koodissa)
Ylläpitodokumentaatio • Projektin päättyessä tuotedokumentaatio muutetaan ylläpitoa palvelevaan muotoon • esim. käyttöohje, asennus- ja operointiohje, koulutusmateriaali ja tekninen dokumentaatio • asiakkaan tarpeiden mukaan!
Dokumentointimallit • Kaikkien dokumenttien ulkoasun yhdenmukaisuus • Osana laatujärjestelmän dokumentaatiota soveltamisohjeineen • Tyyliopas lähdekoodin dokumentointia varten • modulin ulkoasu, muuttujien nimet, sisennykset, kommentoinnit, suosituksia työkalujen käytöstä • IEEEn standardisarja • ESAn standardi PSS-05-04 Issue 2 • Dokumenttimallien suomenkielisiä versioita löytyy esim. http://www.cs.tut.fi/cgi-bin/laatu/sivuhaku.pl