Mallien ja järjestelmien oikeellisuuden toteaminen

Koko: px
Aloita esitys sivulta:

Download "Mallien ja järjestelmien oikeellisuuden toteaminen"

Transkriptio

1 Mallien ja järjestelmien oikeellisuuden toteaminen Elena Pirinen Helsinki HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

2 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta Fakultet Faculty Laitos Institution Department Matemaattis-luonnontieteellinen tiedekunta Tekijä Författare Author Tietojenkäsittelytieteen laitos Elena Pirinen Työn nimi Arbetets titel Title Mallien ja järjestelmien oikeellisuuden toteaminen Oppiaine Läroämne Subject Tietojenkäsittelytiede Työn laji Arbetets art Level Seminaari Tiivistelmä Referat Abstract Aika Datum Month and year Sivumäärä Sidoantal Number of pages 21 Perinteisessä mielessä järjestelmän oikeellisuuden toteaminen on tarkoittanut implementoinnin, toteutuksen, oikeellisuuden tarkistamista. Tätä on tehty validoimalla ja verifioimalla järjestelmää. Mallipohjaisessa ohjelmistotuotannossa, jossa mallit tehdään ennen toteutusta, tulisi myös mallien oikeellisuus varmistaa mahdollisimman aikaisessa vaiheessa. On ajateltu, että perinteiset validoinnin ja verifioinnin tekniikat, kuten staattinen analyysi ja dynaaminen testaus sopivat myös mallien oikeellisuuden toteamiseen. Osittain näin voidaankin tehdä, esimerkiksi katselmoinneilla voidaan todeta mallien oikeellisuus. Kuitenkaan malleja ei voida suoraan suorittaa (dynaamisten) testien ajamiseksi. Automaattinen mallien validointi ja verifiointi ei ole tällä hetkellä mahdollista. Implementoinnin validointiin ja verifiointiin on olemassa työkaluja, mutta niiden syötekielenä on ohjelmakoodia, ei abstrakteja malleja. Näistä johtuen mallit tulee ensin transformoida alaspäin tasolle, jota voidaan formaalisti käsitellä. Nykyisin se tarkoittaa alimmalle abstraktiotasolle ja siitä ajettavaksi ohjelmakoodiksi. Kun alemman abstraktiotason semantiikka on aina yhteneväistä ylemmän kanssa, voidaan testejä ajamalla ja validoinnin sekä verifioinnin työkaluilla todeta myös mallien oikeellisuus. Jotta mallien transformoinnit, validoinnit ja verifioinnit voitaisiin suorittaa automaattisesti, tulisi mallien olla formaaleja ja keskenään yhteensopivia. Tällä hetkellä ei kuitenkaan ole riittävää standardia formaalien mallien muodostamiseksi, eivätkä mallinnustyökaluilla tehdyt mallit ole välttämättä keskenään yhteensopivia. Malleja ja implementointeja ei myöskään ole mahdollista tällä hetkellä verrata keskenään, onko lopputulos sellainen, kuin ajateltiin. Ei ole ohjelmistoja, jotka vertaisivat kahdella eri abstraktiotasolla olevaa kuvausta järjestelmästä toisiinsa ja suorittaisivat vertailevaa verifiointia ja validointia. ACM Computing Classification System (CCS): D.2 [Software Engineering] Avainsanat Nyckelord Keywords Model transformation, MDA, MDE, Testing of object-oriented systems Säilytyspaikka Förvaringställe Where deposited Muita tietoja Övriga uppgifter Additional information

3 Sisältö 1 Johdanto Malliperustainen ohjelmistotuotanto Malliperustaisen ohjelmistotuotannon tavoitteet ja hyödyt Abstraktiotasot ja näkökulmat Mallimuunnokset eri kohteiksi Oikeellisuuden toteaminen Ohjelmiston ominaisuudet Validointi Verifiointi Staattinen analyysi Dynaaminen testaus Testausprosessi ja testausstrategia Testivaatimukset, testaussuunnitelma ja testitapaukset Oikeellisuuden toteaminen mallipohjaisessa ohjelmistotuotannossa Mallien semantiikka Mallien muuntaminen sopivalle abstraktiotasolle Työkalujen valinta Verifiointi mallipohjaisessa ohjelmistotuotannossa Verifiointi Web services -ympäristössä Staattinen analyysi Mallipohjainen (dynaaminen) testaus Yhteenveto... 18

4 1 1 Johdanto Malliperustainen ohjelmistotuotanto (engl. model-driven engineering, MDE) on ohjelmistokehityksen menetelmä, jossa apuvälineinä käytetään malleja. Malli on jonkin järjestelmän kuvaus; järjestelmä voi olla fyysinen, digitaalinen, abstrakti tai esimerkiksi sosiaalinen järjestelmä, tällöin kuvaus on ontologiaa. Mallien perusteella voidaan tuottaa toisia malleja, tekstiä tai ohjelmistoja. Tarkoituksena on nostaa abstraktiotasoa tietokonelähtöisestä lähdekoodin näkökulmasta sovelluslähtöisempään näkökulmaan sekä automatisoida osaa tietojärjestelmäkehityksestä [SeKo03] [Sch06]. Mallien sekä niiden pohjalta tehtyjen toteutusten oikeellisuuden toteaminen tarkoittaa niiden verifioimista ja validoimista. Täyttääkö tuotos tarpeen, johon se on suunniteltu, onko se vaatimusten mukainen, ja toisaalta toimiiko tuotos oikein, virheettä. Perinteisesti ohjelmakoodia voidaan verrata vaatimusmäärittelyyn ja toisaalta suorittaa ajamalla testitapauksia ja siten saada implementointi verifioitua sekä validoitua. Mallien osalta tilanne on toinen. Mallit tulee transformoida alimmalle abstraktiotasolle, jotta niistä saataisiin suoritettavaa koodia, jota voidaan ajaa. Alemman abstraktiotason mallin on oltava semanttisesti yhteneväinen ylemmän mallin kanssa. Näin voidaan ajaa malleja kuin implementointia ja suorittaa verifiointia sekä validointia. Tähän ei kuitenkaan vielä ole työkaluja. Malleja voitaisiin hyödyntää myös testivaatimuksien ja testitapauksien luomisen automatisoimiseksi, mikäli mallit saadaan tietokoneen ymmärtämään muotoon. Tämä seminaarityö on osa Helsingin yliopiston matemaattis-luonnontieteellisen tiedekunnan tietojenkäsittelytieteen laitoksen Malliperustainen ohjelmistotuotanto - seminaaria. Seminaarityössä tarkastellaan ensin lyhyesti mallipohjaista ohjelmistotuotantoa yleensä, oikeellisuuden toteamiseen liittyviä piirteitä. Tämän jälkeen selvitetään, mitä tarkoittaa oikeellisuuden toteaminen perinteisessä mielessä, jolloin tarkastellaan implementoinnin oikeellisuutta. Samat käsitteet viedään sitten mallipohjaisen ohjelmistotuotannon oikeellisuuden toteamiseen, ja tutkitaan mitä eroja on edelliseen verrattuna. Seminaarityössä tarkastellaan mitä ratkaisuja on tällä hetkellä tarjolla mallien verifioimiseksi ja validoimiseksi sekä niiden automatisoimiseksi, ja kuinka malleista voidaan automaattisesti tuottaa testivaatimuksia ja testitapauksia.

5 2 2 Malliperustainen ohjelmistotuotanto Malliperustainen ohjelmistotuotanto (engl. model-driven engineering, MDE) on nostanut ohjelmistokehityksen abstraktiotasoa ohjelmointikieliin verrattuna. Aluksi ohjelmistokehityksessä käytettiin ohjelmointikieliä, toimittiin hyvin tietokonelähtöisesti. Sitten avuksi tulivat CASE-välineet, jotka automaattisesti tekivät esimerkiksi luokkakaavioista tietokannan taulujen luontilauseet. Malliperustaisessa ohjelmistotuotannossa tehdään ensin mallit, sovelluskohtaista sanastoa käyttäen, ja mallien perusteella tuotetaan ohjelmistot. Malli on kuvaus, joka on kuvattavaa kohdetta yksinkertaisempi, mutta joka säilyttää mahdollisimman hyvin mallinnettavan kohteen tarkasteltavat ominaisuudet. Hyvä malli on kompakti, hallittavan kokoinen, ennustava, semanttisesti mielekäs ja riittävän yleinen [PeYo08]. 2.1 Malliperustaisen ohjelmistotuotannon tavoitteet ja hyödyt Malliperustainen ohjelmistotuotanto tehostaa määrittely- ja suunnittelutyötä. Sanastona käytetään kunkin organisaation liiketoimintasanastoa, jolloin tarvittavan henkilöstön saaminen mukaan kehitystyöhön ei vaadi sanastollista erityisosaamista. MDE helpottaa myös toteutusvaihetta. Koodia voidaan generoida automaattisesti ja toistuvat tehtävät voidaan automatisoida. MDE:n avulla ohjelmistokehitystyössä voidaan käyttää uudelleen haluttuja osa-alueita, sillä järjestelmää voidaan tarkastella eri aspekteista eli näkökulmista. Esimerkiksi turvallisuusaspekti tai tehokkuusaspekti voidaan ottaa mukaan myöhemmin toisiin järjestelmiin. Tämä tukee lisäksi siirrettävyyttä, jolla voidaan myös saavuttaa liiketoimintaetua MDE:ssä. Järjestelmistä tulee yleiskäyttöisempiä ja tehokkaampia. Parhaat käytännöt dokumentoidaan, jolloin myös niitä voidaan hyödyntää myöhemmissä järjestelmähankkeissa.

6 3 2.2 Abstraktiotasot ja näkökulmat Malliperustaisessa ohjelmistotuotannossa järjestelmiä käsitellään monesta eri abstraktiosta ja näkökulmasta. Eri abstraktiotasojen mallit kuvaavat kohdetta eri tarkkuuksilla, enemmän tai vähemmän yksityiskohtaisesti, eri näkökulmat kuvaavat kohdetta tietyn abstraktiotason kautta [SeK03]. OMG:n (Object Management Group) MOF (meta object facility) -standardin mukainen nelikerrosarkkitehtuuri [OMG09] sisältää meta-metamallit (MOF), metamallit (UML), mallit (luokkakaaviot) ja datan (konkreettiset objektit). OMG:n MOF -standardin mukaan abstraktiotasoja on kolme [OMG09] CIM (Computation Independent Model) tarkastelee organisaation toimintaa, PIM:ssä (Platform Independent Model) viedään SIM:n käsitteet yhtä tasoa alemmas, puhutaan esimerkiksi orkestroinneista, koreografioista sekä rooleista ja PSM (Platform Spesific Model) vie PIM-tason käsitteet johonkin tiettyyn teknologiaan. 2.3 Mallimuunnokset eri kohteiksi Mallista voidaan muuntaa toinen malli, jolloin käytetään metatason hierarkiaa transformaatioiden tekemiseen. Malli voidaan muuntaa myös tekstiin. Tästä on esimerkkinä kaavaimet, joissa tulostekielen, esimerkiksi HTML, väliin laitetaan proseduraalisia osia, esimerkiksi PHP-ohjelmointikielellä. Mallien kudonnassa määritellään vastaavuuksia kahden eri mallin välille. Tällöin malleja voidaan sulauttaa ja sitoa toisiinsa, ja niiden välille voidaan määritellä yhteistoimintaa.

7 4 Eriasteisia mallitransformaatioita tarvitaan mallien hallitsemiseksi ja käsittelyn automatisoimiseksi, esimerkiksi mikäli kaikki sovellusalueen mallit liittyvät toisiinsa [SeK03]. 3 Oikeellisuuden toteaminen Perinteisesti oikeellisuuden toteaminen on tarkoittanut implementoinnin, toteutuksen, oikeellisuuden arvioimista ja varmistamista. Järjestelmäprojektin tuloksia voidaan tarkastella monesta eri näkökulmasta koko yrityksen toiminnan, yksittäisen projektin ja jopa yksittäisen vaihetuotteen kannalta [HaMä98]. Tuloksen oikeellisuutta tarkastellaan validoimalla ja verifioimalla. 3.1 Ohjelmiston ominaisuudet Ohjelmistolla on joukko kirjattuja ominaisuuksia, joita myös varmennetaan verifioinnilla ja validoinnilla. Ominaisuuksia voivat olla esimerkiksi luotettavuus (engl. dependability), viive (engl. latency), käytettävyys (engl. usability), läpäisykyky (engl. throughput), ylläpidettävyys (engl. maintainability), uudelleenkäytettävyys (engl. reusability), testattavuus (engl. testability) ja seurattavuus (engl. traceability) [PeYo08]. Ominaisuuksille määritellään halutut arvot, joita voidaan myös testausprosessin kuluessa vaihdella. 3.2 Validointi Ohjelmiston validointi vastaa kysymykseen: 'Are we doing the right product?', siinä tarkastellaan täyttääkö tuote asiakkaan sille asettamat todelliset tarpeet, onko ohjelmisto sitä mitä haluttiin. Mietitään mikä on tehtävä, johon ohjelma on valittu ja täyttääkö ohjelma tuon tehtävän [PeYo08]. 3.3 Verifiointi Verifioinnissa puolestaan kysytään: 'Are we doing the product right?', jolloin tarkastetaan vastaako tehtävä ohjelmisto sille tehtyä määrittelyä, toteutuvatko kirjatut vaatimukset ja onko tuote vaatimusten mukainen [PeYo08]. Verifionti vaatii hyvin

8 5 yksityiskohtaista analyysiä spesifikaatiosta ja ohjelmistosta, joten se on usein aikaa vievää ja kallista [So04]. Verifiointiin on kehitetty työkaluja, joilla pyritään automatisoimaan ja helpottamaan manuaalisia tehtäviä. Verifiointiin ja validointiin on olemassa lukuisia tekniikoita, jotka pääosin luokitellaan kahteen ryhmään: staattinen analyysi ja (dynaaminen) testaus. 3.4 Staattinen analyysi Staattinen analyysi on yleisnimi sellaisille verifiointi- ja validointitekniikoille, jotka eivät vaadi ohjelmakoodin suoritusta. Se sopii suoritettavaksi alkuvaiheessa ohjelmistonkehitysprosessia, kun on olemassa jokin malli, mitä voidaan testata. Yksi staattinen analyysitekniikka ovat tarkastukset (engl. inspections). Se on erinomainen, mutta aikaa vievä ja kallis tekniikka [PeYo08]. 3.5 Dynaaminen testaus Dynaaminen testaus tarkoittaa verifiointi- ja validointitekniikoita, jossa ohjelmaa tai sen osaa suoritetaan tietyllä syötteellä ja saadut tulokset analysoidaan. Tällöin löydetään sellaisia virheitä, joita ihminen ei pysty laskemaan. Tekniikkaa käytetään, kun hallittava kokonaisuus on hankala tai kun järjestelmä on deterministinen. Mikäli järjestelmä on epädeterministinen eli riippuu ympäristöstään vahvasti, on staattinen analyysi parempi tekniikka [PeYo08]. Dynaamisella testauksella löydettävät virheet ovat pienempiä, mutta kokonaisuus saattaa olla hankala hahmottaa. Yleisesti ottaen dynaaminen testaus sopii virheiden etsintään, staattinen analyysi puolestaan ominaisuuksien varmentamiseen [PeYo08]. 3.6 Testausprosessi ja testausstrategia Pöri esittää väitöskirjassaan [Pö08, s. 3-5], että ohjelmiston testaus suoritetaan testausprosessin kautta laatusuunnitelman ja siitä johdetun testausstrategian pohjalta. Järjestelmälle laaditaan testausstrategia, jossa kuvataan laatutavoitteet sekä tavat mitata niiden toteutumista. Laatutavoitteet määritellään usein laatuattribuutteina, jossa ominaisuuksille on määrätty vaaditut arvot [PeYo08]. Testausstrategiassa kuvataan myös laadun varmistuksessa tarvittavat dokumentit ja käytettävät työkalut.

9 6 Kuva 1: Laatusuunnitelma, testausstrategia ja testausprosessi [Pö08] 3.7 Testivaatimukset, testaussuunnitelma ja testitapaukset Testausstrategian pohjalta tehdään testivaatimukset, testaussuunnitelma ja siihen liitetään testitapaukset.

10 7 Testauksessa on noudatettava seuraavia vaatimuksia: Vaatimus 2.4.1: Ohjelmistoa tulee voida demonstroida RITA-työkalulla. Vaatimus 2.4.2: Ohjelmisto testaus tulee toteuttaa JUnit-työkalulla. Vaatimus 2.4.3: Arkkitehtuuri toteutetaan niin, että samaa testikoodia on mahdollista käyttää eri sovelluksille. Vaatimus 2.4.4: Yksikkö- ja integraatiotestit erotetaan toisistaan sekä nimetään selkeästi. Vaatimus 2.4.5: Kaikki konfiguraatiot ovat testattavissa; myös eri sovelluksien komponentteja yhdistämällä tehdyt sovellukset tulee voida testata. Vaatimus 2.4.6: Ohjelmistolle toteutetaan testitapauksia, joissa kerrosarkkitehtuuria käydään läpi siten, että kaikki kerrokset tulevat testattua. Vaatimus 2.4.7: Testit ryhmitellään testijoukoiksi (test suite) eri ominaisuuksien mukaan. Kuva 2: Esimerkki testivaatimuksista [AnKi04] Testitapaukset suunnitellaan täyttämään yhden tai useamman testivaatimuksen. Testitapaus sisältää [PeYo08] joukon syötteitä, suoritusehdot (esimerkiksi muuttujien arvot testin alussa) ja hyväksymisehdon (mikä on testitapauksen hyväksyttävä lopputulos, menikö testi läpi). Testaussuunnitelmaan voidaan liittää testioraakkeli, joka kertoo, mikä testin tulos pitäisi olla. Testioraakkeli voi olla esimerkiksi uuden ohjelman edellinen ohjelmaversio, jota ajettaessa saadaan selville, mikä tulos uudella ohjelmalla pitäisi saada. Testioraakkeli voi olla myös käyttäjä, tai kullekin testitapaukselle määritellyt pre- ja postehdot, jotka on oltava voimassa.

11 8 4 Oikeellisuuden toteaminen mallipohjaisessa ohjelmistotuotannossa Mallipohjaisen ohjelmistotuotannon systeemitestauksesta ei ole vielä paljoa tutkimustietoa [BrLa02]. On ajateltu, että olemassa olevat lähestymistavat testaukseen pätevät niin perinteisiin kuin mallipohjaisiin systeemeihin. Kuitenkin, kuten luvussa 3 todettiin, testaustekniikat ovat perinteisesti olleet implementointilähtöisiä systeemitestauksia, kun mallipohjaisessa ohjelmistotuotannossa myös mallit sekä mallien suhde tuotokseen tulee testata [BrLa02]. Malleista pyritään verifiointia ja validointia varten löytämään ominaisuuksia, joita voidaan tarkastella. Usein ohjelmiston tai dokumentaation ominaisuus voi kuitenkin olla niin yleinen, ettei sitä voida varmentaa helposti [PeYo08]. UML (engl. unified modeling language) on standardi graafiselle mallinnuskielelle, joka sisältää 13 erilaista kaaviota, mallia [W09UML]. UML kielellä tuotettujen mallien verifiointi ja validointi on ongelmallista [EnKüHe03]. UML ei ole yleensä verifiointityökalujen syötekieli ja eikä UML-mallia myöskään ei pystytä suoraan suorittamaan (dynaamista) testaamista varten. UML malleja on lähinnä käytetty dokumentointiin ja kommunikoinnin helpottamiseksi, jolloin formaali semantiikka ja mallien käsittelyn työkalut eivät ole olleet tarpeen. Engels, Küster, Heckel ja Lohmann esittävät esseessään [EnKüHe03] kuinka UML malli voidaan muuntaa verifiointi- ja validointityökalujen ymmärtämäksi syötekieleksi. Mallin tulee sisältää riittävästi tietoa sekä mallin tulee olla riittävän formaali, jotta automaattista muuntamista voidaan tehdä [BrLa02]. Kielessä säilytetään alkuperäisen mallin semantiikka, ja sekä verifiointi- että validointityökalut ymmärtävät muunnoskieltä. Kun semantiikka on säilytetty samanlaisena, on tämän implementoinnin validointi ja verifiointi samalla myös sen mallin oikeellisuuden tarkastamista [EnKüHe03]. Mikäli verifioinnissa ja validoinnissa tulee virheitä, ovat ne malleissa olevien virheiden ansiota, ja malleja on korjattava. 4.1 Mallien semantiikka Semanttista käyttäytymistä malleissa voidaan määritellä tutkimalla mitä yksittäinen aktiviteetti tarkoittaa ja miten tuo aktiviteetti yhdistyy muihin. On toimialakohtaista mitä semantiikkaa tarvitaan ja miten tuota semantiikkaa validoidaan ja verifioidaan.

12 9 4.2 Mallien muuntaminen sopivalle abstraktiotasolle UML-mallit voidaan muuntaa implementaatioksi käyttämällä olemassa olevia mallien transformaatiotekniikoita. Mallista generoidaan ohjelmakoodi ja mallia käytetään myös testitapausten määrittelemisessä. Testitapaukset ajamalla saadaan verifioitua implementaatio ja sitä kautta myös malli, kunhan semantiikka on säilytetty samanlaisena [EnKüHe03]. Mikäli mallit ovat korkealla abstraktiotasolla, transformoidaan ne ensin taso kerrallaan alimmalle formaalisti käsiteltävissä olevalle transformaatiotasolle käyttäen mallitransformaatiota. Nykyisin tämä tarkoittaa lähinnä alinta abstraktiotasoa, joka on lähimpänä teknistä alustaa, ja josta voidaan automaattisesti muuntaa mallit ajettavaksi prototyypiksi [EnKüHe03]. UML:llä tehdyistä artifakteista, kuten käyttötapaus-, sekvenssi-, yhteistyö- ja luokkakaavioista voidaan johtaa systeemin toiminnalliset vaatimukset, jotka puolestaan voidaan muuntaa testitapauksiksi verifiointi- ja validointityökalua varten [BrLa02]. Tällöin mallien semantiikan ja syntaksin tulisi olla yhteneväistä ja mallit tehdä kontrolloidusti siten, että mallit ovat keskenään yhtenäisiä ja johdonmukaisia [LeBaJu95]. Tuloksena olevan tuotteen tai mallin on oltava yhteensopiva ylemmän mallin kanssa (konformanssi). Eri näkökulmien on myös annettava yhtenäinen kuva järjestelmästä, jota tutkitaan (konsistenssi). Mallien transformaatio on yksi MDA:n ydinajatuksia [Al07]. Mallien muuntamistyökalussa on oltava API (Applicetion Programming Interface), jokin kirjasto, rajapinta, jonka avulla eri ohjelmointikielillä pääsee käyttämään työkalua. Mallien muuntamista voitaisiin kuitenkin ajatella tehtäväksi suoraan transformaatiokielillä, jolloin muunnoksien spesifikaatiot itsessään olisivat myös malleja [Al07]. 4.3 Työkalujen valinta Olennaista on, että käytettävät työkalut on määritelty [EnKüHe03]. UML mallit tehdään formaaleiksi tiettyjen työkalujen avulla, sillä formaalien mallien määritteleminen ilman työkalujen apua on hankalaa. Samoin tiettyjä työkaluja käytetään testistrategian luomisessa, jonka avulla puolestaan tehdään testien määrittelyt. Työkalupakkiin (engl. tool suite) tarvitaan neljänlaisia komponentteja [EnKüHe03]

13 10 mallinnuksen hallinnan työkalut, verifiointityökalu, validointityökalu ja käyttöliittymäkomponentti. Mallinnuksen hallinnan työkaluihin kuuluvat mallien luomiseen, muokkaamiseen ja säilyttämiseen liittyvät ratkaisut siten, että malleista saadaan formaaleja. Tämä on ikään kuin CASE-työkalu UML-kaavioiden tekemiseen. Verifiointityökalu transformoi ensin mallin riittävän alhaiselle abstraktiotasolle, ja käyttäjä voi lisäksi lisätä malliin ominaisuuksia. Verifioinnin jälkeen tuloksia voidaan tarkastella tietyn käyttöliittymän kautta. Validointityökalu muuntaa alimman abstraktiotason mallin suoritettavaksi ohjelmakoodiksi dynaamista testausta varten. Koodimuunnoksia voidaan muokata editorin kautta, ja testitapaukset voidaan luoda automaattisesti. Työkalujen tulisi olla keskenään yhteensopivia ja pitäisi myös standardoida, onko mallinnuskielenä UML vai joku muu [Al07]. 4.4 Verifiointi mallipohjaisessa ohjelmistotuotannossa Verifiointi on formaali tarkistus, että tuote vastaa sille asetettuja vaatimuksia. Mallitarkastuksella (engl. model checking) voidaan automaattisesti testata täyttääkö ohjelmisto spesifikaatiomääritykset tuottamalla joukko tiloja ja siirtymiä sekä arvioimalla niiden perusteella ohjelmiston toimintaa [EnRo03]. 4.5 Verifiointi Web services -ympäristössä Web service on ohjelmistojärjestelmä, joka mahdollistaa tietokoneiden välisen vuorovaikutuksen tietoverkon yli. Käytännössä termillä tarkoitetaan internetpohjaisia ohjelmointirajapintoja: jokin palvelin tarjoaa muille tietokoneille palvelun tai muun internetpohjaisen protokollan yli [W09WS]. Työnkulku (engl. workflow) kuvaa ihmisten ja laitteiden välisen työn etenemistä organisaatiossa. Työnkulku sisältää aktiviteetteja, kuten tietojen näyttäminen käyttäjälle, tietojen pyytäminen käyttäjältä tai tietokoneelta, laskutoimitukset tai viestien lähettäminen muille järjestelmille. Työnkulusta kuvataan: miten tehtävät tehdään, kuka

14 11 ne tekee, missä järjestyksessä ja kuinka nopeasti. Artikkelissaan [FoUcMa] Foster, Uchitel, Magee ja Kramer kuvaavat kuinka työnkulkuja web services -ympäristössä voidaan verifioida. Nykyisin web-services teknologiaa käytetään lähinnä point-to-point tyyppisesti kahden autonomisen järjestelmän välillä. Päämääränä on kuitenkin dynaaminen kokonaisuus, jossa palvelu voidaan valita tarpeen mukaan, ja työnkulku mukautuu valinnan mukaisesti. Tämä asettaa uudenlaisia haasteita kokonaisuuden verifioinnille. Työnkulku olisi tärkeätä verifioida ennen sen varsinaista implementointia. Artikkelissa [FoUcMa] ehdotetaan työnkulkujen mallintamista teknologiariippumattomilla tavoilla ja mallien käyttämistä verifiointiin. Artikkelissa web services työnkulut kuvataan XMLpohjaisella BPEL4WS (engl. business process execution language for web services) kuvauskielellä ja lisäksi ne mallinnetaan UML:n sekvenssikaavioilla (engl. MSC, message sequence chart). Molemmista luodaan tekstimuotoinen esitys FSP (engl finite state process) -notaatiolla. Näitä kahta vertaamalla löydetään eroja ja vastaavuuksia ja saadaan interaktiivisesti verifioitua molempien ominaisuuksia ottamatta vielä kantaa tekniseen alustaan ja sen asettamiin rajoituksiin. Sekvenssikaaviot, muunnokset FSP:hen sekä vertailut esitysten välillä ehdotetaan tehtäviksi sekä automatisoitaviksi mallinnustyökalulla nimeltä LTSA (engl. Labelled Transition System Analyzer). Jotta vertailua voidaan tehdä, on semantiikan oltava yhteneväinen.

15 12 Kuva 8: Verifiointi Web services ympäristössä [FoUcMa] Artikkeli tarjoaa ehdotuksen kuinka verifiointia voitaisiin tehdä ennen käyttöönottoa. Lisäksi ehdotetaan työnkulkujen mallintamisen integroimista mallinnustyökaluihin verifioinnin helpottamiseksi. Vastaavaa työnkulkujen mallintamista ja verifioimista voidaan tehdä myös muissa kuin Web services -ympäristössä.

16 Staattinen analyysi Staattinen analyysi on mallipohjaisessa ohjelmistotuotannossa validoinnin ja verifioinnin tekniikka, jossa testataan mallin oikeellisuutta. Tekniikalla on tarkoitus löytää puutteita tai virheitä ohjelman malleissa. Mitä strukturoidumpi malli on, sitä paremmin testausta voidaan automatisoida, toisaalta taas formaalin mallin tekemiseen menee enemmän aikaa [PeYo08]. Staattisessa analyysissä löydetään suuriin kokonaisuuksiin liittyviä virheitä. 4.7 Mallipohjainen (dynaaminen) testaus Formaalit mallit sisältävät niin paljon informaatiota, että niiden avulla voidaan tehdä automaattista testausta. Formaaleja malleja ovat esimerkiksi äärelliset automaatit, päätöstaulut ja kieliopit. Puoliformaalit mallit vaativat manuaalista analyysiä, mutta tarjoavat silti paremman lähtökohdan testitapausmäärittelyille kuin vapaamuotoiset kuvaukset. Puoliformaaleja malleja ovat esimerkiksi luokkakaaviot, tietovuokaaviot ja laajennetut käyttötapaukset [PeYo08]. Briand ja Labiche ehdottavat artikkelissaan [BrLa02] TOTEM (Testing Object-orienTed systems with the unified Modeling language) metodologiaa mallipohjaiselle systeemitestaukselle. Tällöin dynaamista testausta voidaan automatisoida puoliformaaleista malleista lähtien. Testivaatimukset tuotetaan automaattisesti seuraavista UML-artifakteista : käyttötapauskaaviot, käyttötapauskaavioiden kuvaukset (engl. use case descriptions), sekvenssi- tai yhteistyökaavio jokaista käyttötapausta kohden, luokkakaaviot ja sanasto (engl. a data dictionary), joka kuvailee jokaisen luokan, metodin ja attribuutin.

17 14 Lisäksi saatetaan tarvita aktiviteettikaavio kuvaamaan missä järjestyksessä käyttötapauksia voi järjestelmään tulla, mikäli järjestyksen on oltava määritelty. Esimerkiksi kirjastosysteemissä käyttäjän tulee rekisteröityä ennen kuin hän voi lainata kirjan. TOTEM-metodologia koostuu seuraavista vaiheista: UML-mallin formalisimin tarkistaminen (A1), Käyttötapausten riippuvuuksien määrittely (aktiviteettikaavio) (A2), Testivaatimukset sekvenssikaavioiden perusteella (A3), Testivaatimukset luokkakaavioiden perusteella (A4), Aktiviteettikaavioiden ja sekvenssikaavioiden yhdistäminen (A5), Systeemitestausvaatimusten kokoaminen edellisistä (A6), Testitapausten luominen systeemitestausvaatimusten perusteella (A7) ja Testausoraakkelien luominen (A8).

18 15 Kuva 3: TOTEM vaiheet [BrLa02] UML-kaavion on oltava automaattisesti testattavissa, eli riittävän formaalisti muodostettu. Tälle ei artikkelissa ole varsinaista toimintamallia, kerrotaan ainoastaan, että formalismi on tarkistettava. Jokaiselle toimijalle on TOTEM:ssa tehty oma aktiviteettikaavio, josta nähdään käyttötapausten väliset riippuvuudet.

19 16 Kuva 4: Esimerkki aktiviteettikaaviosta [BrLa02] Aktiviteettikaaviosta muodostetaan ohjelmallisesti suunnattu verkko, joka kertoo käyttötapaussekvenssien läpikäymisen järjestyksen. Kuva 5: Esimerkki aktiviteettikaaviosta muodostetusta verkosta [BrLa02] Jokainen käyttötapaus kuvataan sekvenssikaaviolla tai yhteistyökaaviolla, joissa kuvauskielenä on käytetty OCL:ää (engl. object constraint language) [W09OCL].

20 17 Kuva 6: Esimerkki sekvenssikaavioista[brla02] Sekvenssikaaviosta muodostetaan ohjelma, jossa otsakkeet (engl. labels) ovat operaatioita, ja algoritmit voivat automaattisesti muodostaa säännölliset lausekkeet tietokoneohjelmaa varten. Kuva 7: Sekvenssikaavion perusteella muodostettu säännöllinen lauseke [BrLa02]

21 18 Kun operaatiot sekä niiden suoritusjärjestys on näin saatu automatisoitua, kootaan systeemitestausvaatimukset sekä testitapaukset; mitä asioita pitää testata, jotta saadaan todettua toimiiko järjestelmä siten kuin se on tarkoitettu toimivaksi. Lopuksi luodaan testioraakkelit. Ne saadaan, mikäli operaatioiden pre- ja post-ehdot ovat määritelty formaalisti ja OCL-kielellä. Oraakkeli kertoo toteutuvatko ehdot halutulla tavalla. TOTEM-metodilla päästään suunnittelemaan testivaatimuksia jo perinteisen ohjelmistotuotantoprojektin aikaisessa vaiheessa, käyttötapauskaavioiden, sekvenssikaavioiden ja luokkakaavioiden valmistuttua. Testivaatimukset luodaan näiden kaavioiden pohjalta. Kaavioiden aikainen analysointi on tärkeää, sillä näin voidaan löytää ja korjata virheitä mahdollisimman aikaisessa ohjelmistoprojektin vaiheessa. Kun yksityiskohtaisempaa tietoa ohjelmistosta on saatavilla projektin edettyä, voidaan jo varhain tehtyjä testivaatimuksia käyttää testitapausten ja testioraakkelien muodostamiseksi. Artikkelissa [BrLa02] annetaan algoritmeja käyttötapausten järjestyksen automatisoimiseksi, kuten edellä esiteltiin, sekä proseduuri käyttötapausskenaarioiden automaattiseksi muodostamiseksi, mutta muutoin automatisointi on jätetty vielä tulevaisuuden tutkimuskohteeksi. Myöskään siihen ei olla otettu kantaa, miten eitoiminnallisten laatuvaatimusten (esimerkiksi luotettavuus, suorituskyky) testaaminen voitaisiin integroida TOTEM-lähestymistapaan. 5 Yhteenveto Mallipohjaisessa ohjelmistotuotannossa mallien oikeellisuuden varmentamiseen ei ole vielä riittäviä työkaluja. Ei myöskään ole välineitä verrata mallien pohjalta tehtyä toteutusta itse malliin: vastaavatko ne toisiaan. Työ on pitkälti aikaa vievää manuaalista käsityötä eikä tehtäviä voida automatisoida. Mikäli testauksessa vaaditaan paljon manuaalista työtä, kuten suurissa järjestelmissä, joissa testitapauksia on paljon, tulee testaamisesta kallista ja aikaa vievää ilman automatisointia. Mallien automaattinen verifiointi ja validointi ei ole mahdollista niin kauan, kuin itse mallien formalismia ei ole määritelty. Riittäviä työkaluja kaavioiden formaalille

22 19 muodostamiselle ei ole; mallien rakenne vaihtelee eivätkä ne välttämättä ole keskenään yhteensopivia. UML on noussut yleisimmäksi standardiksi mallien muodostamisessa, mutta tällä hetkellä ei ole mahdollista varmistaa UML-mallien formalismia automaattisten työkalujen avulla Mallien verifioimisen ja validoimisen automatisoimiseksi tulisi nämä mallit saada tietokoneen ymmärtämään muotoon. UML- tai muista malleista pitäisi saada muodostettua ajettavaa ohjelmakoodia, jossa alkuperäisen mallin semantiikka on säilytetty. Tämän ohjelman oikeellisuuden toteaminen olisi samalla mallin oikeellisuuden varmistamista. Tätä varten mallit tulisi muuntaa alimmalle formaalisti käsiteltävälle abstraktiotasolle. Näin saataisiin luotua ajettavaa ohjelmakoodia, jota verifiointi- ja validointityökalut ymmärtävät. Tässä mallitransformaatio on olennaista, mutta mallien abstraktiotasojen muuntamiseksi ei ole vielä standardoituja työkaluja. Testivaatimusten ja testitapausten automaattiselle muodostamiselle UML-kaavioiden pohjalta on joitakin algoritmeja, mutta suuremmassa määrin testitapausten muodostamisen automatisointi ei ole vielä mahdollista. Työnkulkuja voidaan verifioida kuvaamalla ne UML-sekvenssikaavioilla ja lisäksi BPEL-kielellä, muuntamalla ne tekstimuotoisiksi ja vertaamalla tämän jälkeen automaattisesti toisiinsa eroavaisuuksien löytämiseksi. Joskus ohjelman toiminta voidaan mallintaa äärelliseksi automaatiksi, joukoksi tiloja ja siirtymiä. Äärellisen automaatin kuvaama järjestelmä siirtyy tilasta toiseen saamansa herätteen avulla. Tällaisen formaalisti muodostetun tilakoneen avulla on mahdollista automaattisesti testata ominaisuuksia vaatimusmäärittelyä vasten vertaamalla toinen toisiaan. Työkalut on oltava kunnossa, jotta mallipohjainen analyysi UML- ja muista kaavioista voisi yleistyä. Tarvittavia työkaluja olisivat: mallinnuksen hallinnan työkalut formaalien mallien muodostamiseksi, verifiointityökalut ominaisuuksien hallinnoimiseksi ja niiden oikeellisuuden varmentamiseksi, työkalut mallien abstraktiotasojen muuntamiseksi, validointityökalut mallin muuntamiseksi ajettavaksi ohjelmaksi sekä sen suorittamiseksi, ja käyttöliittymäkomponentit koodin ja mallien editointia varten. Tällaisia työkaluja ei vielä ole olemassa. Mikäli riittäviä työkaluja ei ole, ei mallipohjaista oikeellisuuden toteamista juuri ole mahdollista automatisoida.

23 20 Lähteet AnKi04 Andersson, J., Kielosto, J., Linnamaa, L., Tilles, J., Vettenranta, J., Vaatimusdokumentti, 2004, URL [ ]. Al07 Alanen, M., A Metamodeling Framework for Software Engineering, BrLa02 Briand, L., Labiche, Y., A UML-Based Approach to System Testing, 2002, URL [ ]. EnKüHe03 Engels, G., Küster, J., Heckel, R., Lohmann, M., Model-Based Verification and Validation of Properties, 2003, URL [ ]. EnRo03 FoUcMa HaMä98 Endres, A., Rombach, D., A Handbook of Software and Systems Engineering. Pearson Education Limited, sivut Foster, H., Uchitel, S., Magee, J., Kramer, J., Model-based Verification of Web Service Compositions. Haikala, I., Märijärvi, J., Ohjelmistotuotanto, Suomen Atk-kustannus Oy, sivut LeBaJu95 Lee, M., Barta, B., Juliff, P, Software Quality and Productivity, Chapman&Hall, sivut Obj09 Object Management Group, Meta Object Facility (MOF), URL [ ]. OMG09 OMG s Metaobject Facility, 2009, URL [ ] PeYo08 Pezzè, M., Young, M., Software Testing and Analysis: Processes, Principles, and Techniques, Wiley, sivut Pö08 Pöri, M, Testaus Scrum-prosessimallissa. 2008, URL [ ].

24 Sch06 Schmidt, D. C., Model-driven engineering. IEEE Software, 39,2(2006), sivut SeKo03 So04 Sendell, S., Kozaczynski, W., Model transformation: The heart and soul of model-driven software development. IEEE Software, 20,5(2003), sivut Sommerville, I., Software Engineering, Pearson Education Limited, sivut W09OCL Wikipedia, URL [ ]. W09UML Wikipedia, URL [ ]. W09WS Wikipedia, URL [ ]. WhArTr Whittle, J., Araújo, J., Moreira, A., Composing Aspect Models with Graph Transformations.

Hieman lisää malleista ja niiden hyödyntämisestä

Hieman lisää malleista ja niiden hyödyntämisestä Hieman lisää malleista ja niiden hyödyntämisestä Ohjelmistojen mallintaminen Kesä 2012 (Avoin yliopisto) Toni Ruokolainen, 23.8.2012 Mallit Mallit ovat todellisuuden abstraktioita, jotka on muodostettu

Lisätiedot

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki

Malliperustainen ohjelmistokehitys - MDE Pasi Lehtimäki Malliperustainen ohjelmistokehitys - MDE 25.9.2007 Pasi Lehtimäki MDE Miksi MDE? Mitä on MDE? MDA, mallit, mallimuunnokset Ohjelmistoja Eclipse, MetaCase Mitä jatkossa? Akronyymiviidakko MDE, MDA, MDD,

Lisätiedot

Ohjelmistojen testaus

Ohjelmistojen testaus Ohjelmistojen testaus Juha Taina 1. Perusteet (P&Y:1-4) Kurinalainen insinöörityö sisältää suunnittelun ja rakentamisen lisäksi välttämättä tehtäviä, joiden tarkoitus on tunnistaa ja poistaa keskeneräisestä

Lisätiedot

arvostelija OSDA ja UDDI palveluhakemistoina.

arvostelija OSDA ja UDDI palveluhakemistoina. Hyväksymispäivä Arvosana arvostelija OSDA ja UDDI palveluhakemistoina. HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta/Osasto Fakultet/Sektion Faculty/Section Laitos Institution

Lisätiedot

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE) Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE) Pasi Lehtimäki Helsinki 10.9.2007 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY

Lisätiedot

Selainpelien pelimoottorit

Selainpelien pelimoottorit Selainpelien pelimoottorit Teemu Salminen Helsinki 28.10.2017 Seminaaritutkielma Helsingin yliopisto Tietojenkäsittelytiede ! 1 HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY OF HELSINKI Tiedekunta

Lisätiedot

Ohjelmistojen mallintaminen, mallintaminen ja UML

Ohjelmistojen mallintaminen, mallintaminen ja UML 582104 Ohjelmistojen mallintaminen, mallintaminen ja UML 1 Mallintaminen ja UML Ohjelmistojen mallintamisesta ja kuvaamisesta Oliomallinnus ja UML Käyttötapauskaaviot Luokkakaaviot Sekvenssikaaviot 2 Yleisesti

Lisätiedot

Copyright by Haikala. Ohjelmistotuotannon osa-alueet

Copyright by Haikala. Ohjelmistotuotannon osa-alueet Copyright by Haikala Ohjelmistotuotannon osa-alueet Ohjelmiston elinkaari 1. Esitutkimus, tarvekartoitus, kokonaissuunnittelu, järjestelmäsuunnittelu (feasibility study, requirement study, preliminary

Lisätiedot

Ohjelmistojen mallintaminen

Ohjelmistojen mallintaminen Ohjelmistojen mallintaminen - Mallit - Ohjelmiston kuvaaminen malleilla 31.10.2008 Harri Laine 1 Malli: abstraktio jostain kohteesta Abstrahointi: asian ilmaiseminen tavalla, joka tuo esiin tietystä näkökulmasta

Lisätiedot

UML-kielen formalisointi Object-Z:lla

UML-kielen formalisointi Object-Z:lla UML-kielen formalisointi Object-Z:lla Kalvot ja seminaarityö WWW:ssä: http://users.jyu.fi/~minurmin/opiskelu/form/ UML UML == Unified Modelling Language. OMG:n standardoima kieli ohjelmistojärjestelmien,

Lisätiedot

Tietojärjestelmän osat

Tietojärjestelmän osat Analyysi Yleistä analyysistä Mitä ohjelmiston on tehtävä? Analyysin ja suunnittelun raja on usein hämärä Ei-tekninen näkökulma asiakkaalle näkyvien pääkomponenttien tasolla Tietojärjestelmän osat Laitteisto

Lisätiedot

Palvelusuuntautunut ohjelmistotuotanto Luento 6: Malliperustaisen ohjelmistotuotannon perusteet; palvelutuotannon mallit Toni Ruokolainen, 5.2.

Palvelusuuntautunut ohjelmistotuotanto Luento 6: Malliperustaisen ohjelmistotuotannon perusteet; palvelutuotannon mallit Toni Ruokolainen, 5.2. CINCO Collaborative and interoperable computing Palvelusuuntautunut ohjelmistotuotanto Luento 6: Malliperustaisen ohjelmistotuotannon perusteet; palvelutuotannon mallit Toni Ruokolainen, 5.2.2010 Luennon

Lisätiedot

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure

Automaattinen regressiotestaus ilman testitapauksia. Pekka Aho, VTT Matias Suarez, F-Secure Automaattinen regressiotestaus ilman testitapauksia Pekka Aho, VTT Matias Suarez, F-Secure 2 Mitä on regressiotestaus ja miksi sitä tehdään? Kun ohjelmistoon tehdään muutoksia kehityksen tai ylläpidon

Lisätiedot

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science

Testaustyökalut. Luento 11 Antti-Pekka Tuovinen. Faculty of Science Department of Computer Science Testaustyökalut Luento 11 Antti-Pekka Tuovinen 25 April 2013 1 Tavoitteet Työkalutyyppejä Testauksen hallinta Testien määrittely Staattinen analyysi Dynaaminen testaus 25 April 2013 2 1 Työkalut ja testaus

Lisätiedot

Käyttötapausanalyysi ja testaus tsoft

Käyttötapausanalyysi ja testaus tsoft Käyttötapausanalyysi ja testaus tsoft 15.09.2004 http://cs.joensuu.fi/tsoft/ Johdanto Use Case analyysi (käyttötapausanalyysi) on yleisesti käytetty järjestelmälle asetettujen toiminnallisten vaatimusten

Lisätiedot

TIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely

TIE-20200 Samuel Lahtinen. Lyhyt UML-opas. UML -pikaesittely Lyhyt UML-opas UML -pikaesittely UML, Unified Modeling Language Standardoitu, yleiskäyttöinen mallinnuskieli, jota ylläpitää/hallitsee (Object Management Group) OMG Historiaa: 90-luvulla oli paljon kilpailevia

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia

Lisätiedot

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio

Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi, dynaaminen mallintaminen, yhteistoimintakaavio ja sekvenssikaavio Analyysi Tarkentaa ja jäsentää vaatimusmäärittelyä, vastaa kysymykseen MITÄ järjestelmän tulisi tehdä. Suoritetaan seuraavia

Lisätiedot

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma. Koskelo. Helsinki Ohjelmistotuotantoprojekti. HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma Koskelo Helsinki 16.12.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Tom Bertell Johan

Lisätiedot

Ohjelmistojen mallintaminen. Luento 11, 7.12.

Ohjelmistojen mallintaminen. Luento 11, 7.12. Ohjelmistojen mallintaminen Luento 11, 7.12. Viime viikolla... Oliosuunnittelun yleiset periaatteet Single responsibility eli luokilla vain yksi vastuu Program to an interface, not to concrete implementation,

Lisätiedot

Ohjelmistotekniikan menetelmät, UML

Ohjelmistotekniikan menetelmät, UML 582101 - Ohjelmistotekniikan menetelmät, UML 1 Sisältö DFD- ja sidosryhmäkaavioiden kertaus Oliomallinnus UML:än kaaviotyypit 2 Tietovuokaaviot Data flow diagrams, DFD Historiallisesti käytetyin kuvaustekniikka

Lisätiedot

Testaussuunnitelma. Ohjelmistotuotantoprojekti Nero. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testaussuunnitelma. Ohjelmistotuotantoprojekti Nero. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testaussuunnitelma Ohjelmistotuotantoprojekti Nero Helsinki 5.11.2004 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti ( ov) Projektiryhmä

Lisätiedot

Ohjelmistojen mallintaminen Unified Modeling Language (UML)

Ohjelmistojen mallintaminen Unified Modeling Language (UML) 582104 Ohjelmistojen mallintaminen Unified Modeling Language (UML) 1 Olioperustaisuus Olio toimii mallinnuksen perusyksikkönä eri abstraktiotasoilla Järjestelmän rajaus, suunnittelu, ohjelmointi, suoritus..

Lisätiedot

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II

Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi. Verifiointi- ja validointitekniikat. Verifiointi- ja validointitekniikat II 7. Verifiointi ja validointi Verifiointi ja validointi (V&V) on ohjelmistotuotannon työvaihe, missä varmistetaan, että ohjelmisto täyttää sille asetetut implisiittiset ja eksplisiittiset vaatimukset ja

Lisätiedot

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Testausdokumentti. Kivireki. Helsinki Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Testausdokumentti Kivireki Helsinki 17.12.2007 Ohjelmistotuotantoprojekti HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Kurssi 581260 Ohjelmistotuotantoprojekti (6 ov) Projektiryhmä Anu Kontio Ilmari

Lisätiedot

Ohjelmistojen suunnittelu

Ohjelmistojen suunnittelu Ohjelmistojen suunnittelu 581259 Ohjelmistotuotanto 154 Ohjelmistojen suunnittelu Software design is a creative activity in which you identify software components and their relationships, based on a customer

Lisätiedot

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus

Ohjelmistotuotanto vs. muut insinööritieteet. (Usein näennäinen) luotettavuus ja edullisuus Yhteenveto Ohjelmistotuotanto vs. muut insinööritieteet Monimutkaisuus Näkymättömyys (Usein näennäinen) luotettavuus ja edullisuus Muunnettavuus Epäjatkuvuus virhetilanteissa Skaalautumattomuus Copyright

Lisätiedot

Ohjelmistojen mallintaminen kertausta Harri Laine 1

Ohjelmistojen mallintaminen kertausta Harri Laine 1 kertausta 5.12.2008 Harri Laine 1 Ohjelmiston elinkaari, elinkaarimallit Yleinen puitemalli (reference model) - abstrakti kokonaiskuva ei etenemiskontrollia, ei yksityiskohtia Ohjelmistoprosessimallit

Lisätiedot

Dynaaminen analyysi II

Dynaaminen analyysi II Dynaaminen analyysi II Luento 7 Antti-Pekka Tuovinen 9 April 2013 1 Tavoitteet Black-box testitapausten suunnittelutekniikat II Tilamallien käyttö Syys-seurausverkot ja päätöstaulut Käyttötapaukset Yhteenveto

Lisätiedot

UML- mallinnus: Tilakaavio

UML- mallinnus: Tilakaavio UML- mallinnus: Tilakaavio Karkea kuvaus UML- kaavioiden käytöstä ohjelmistonkehityksen eri vaiheissa ja tehtävissä. Mallinnus tilakaavioilla Tilakaaviolla kuvataan yhden luokan olioiden tilan muuttumista

Lisätiedot

Convergence of messaging

Convergence of messaging Convergence of messaging Testaussuunnitelma The Converge Group: Mikko Hiipakka Anssi Johansson Joni Karppinen Olli Pettay Timo Ranta-Ojala Tea Silander Helsinki 20. joulukuuta 2002 HELSINGIN YLIOPISTO

Lisätiedot

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3

SEPA diary. Dokumentti: SEPA_diary_PK_HS.doc Päiväys: Projekti: AgileElephant Versio: V0.3 AgilElephant SEPA Diary Petri Kalsi 55347A Heikki Salminen 51137K Tekijä: Petri Kalsi Omistaja: ElectricSeven Aihe: PK&HS Sivu 1 / 7 Dokumenttihistoria Revisiohistoria Revision päiväys: 29.11.2004 Seuraavan

Lisätiedot

Testaaminen ohjelmiston kehitysprosessin aikana

Testaaminen ohjelmiston kehitysprosessin aikana Testaaminen ohjelmiston kehitysprosessin aikana 04.02.2004 http://cs.joensuu.fi/tsoft/ Sisällys 1. Johdanto 2. Yksikkö- ja integrointitestaus 3. Järjestelmätestaus 4. Hyväksymistestaus http://cs.joensuu.fi/tsoft/

Lisätiedot

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit

Ohjelmiston testaus ja laatu. Ohjelmistotekniikka elinkaarimallit Ohjelmiston testaus ja laatu Ohjelmistotekniikka elinkaarimallit Vesiputousmalli - 1 Esitutkimus Määrittely mikä on ongelma, onko valmista ratkaisua, kustannukset, reunaehdot millainen järjestelmä täyttää

Lisätiedot

Ohjelmistotekniikan menetelmät, kesä 2008

Ohjelmistotekniikan menetelmät, kesä 2008 582101 - Ohjelmistotekniikan menetelmät, kesä 2008 1 Ohjelmistotekniikan menetelmät Methods for Software Engineering Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön

Lisätiedot

UML:n yleiskatsaus. UML:n osat:

UML:n yleiskatsaus. UML:n osat: UML:n yleiskatsaus - voidaan hyödyntää hyvin laajasti. - sopii liiketoimintamallinnukseen, ohjelmistomallinnukseen sen jokaiseen vaiheeseen tai minkä tahansa pysyviä ja muuttuvia ominaisuuksia sisältävän

Lisätiedot

Onnistunut Vaatimuspohjainen Testaus

Onnistunut Vaatimuspohjainen Testaus Onnistunut Vaatimuspohjainen Testaus Kari Alho Solution Architect Nohau Solutions, Finland Sisältö Mitä on vaatimuspohjainen testaus? Vaatimusten ymmärtämisen haasteet Testitapausten generointi Työkalujen

Lisätiedot

2 Ohjelmistoarkkitehtuurien kuvaus

2 Ohjelmistoarkkitehtuurien kuvaus 2 Ohjelmistoarkkitehtuurien kuvaus 2.1 Arkkitehtuurikuvauksen merkityksestä 2.2 Arkkitehtuurin kuvaukseen liittyvät käsitteet 2.3 Arkkitehtuurikuvaukset eri tasoilla 2.4 Arkkitehtuurinäkymät ja kuvaustyypit

Lisätiedot

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1

Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development Harri Laine 1 Ohjelmistojen mallintaminen Ohjelmiston suunnittelu Model driven development 2.12.2008 Harri Laine 1 Jacobson jakaa ohjelmiston oliot kolmeen tyyppiin liittymäolioiksi (interface objects, boundary objects)

Lisätiedot

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2015

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2015 CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET Jussi Kasurinen (etu.suku@lut.fi) Kevät 2015 EDELLISELLÄ KERRALLA TAPAHTUNUTTA Täydellinen testaus on mahdotonta. Testataan, koska virheiden löytyminen ajoissa

Lisätiedot

Uudelleenkäytön jako kahteen

Uudelleenkäytön jako kahteen Uudelleenkäyttö Yleistä On pyritty pääsemään vakiokomponenttien käyttöön Kuitenkin vakiokomponentit yleistyneet vain rajallisilla osa-alueilla (esim. windows-käyttöliittymä) On arvioitu, että 60-80% ohjelmistosta

Lisätiedot

Ohjelmistotekniikan menetelmät, kevät 2008

Ohjelmistotekniikan menetelmät, kevät 2008 582101 - Ohjelmistotekniikan menetelmät, kevät 2008 1 Ohjelmistotekniikan menetelmät Methods for Software Engineering Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön

Lisätiedot

Ohjelmistojen mallintaminen, kesä 2009

Ohjelmistojen mallintaminen, kesä 2009 582104 Ohjelmistojen mallintaminen, kesä 2009 1 Ohjelmistojen mallintaminen Software Modeling Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön tuntemus Ohjelmoinnin

Lisätiedot

Määrittely- ja suunnittelumenetelmät

Määrittely- ja suunnittelumenetelmät Menetelmädokumentti Määrittely- ja suunnittelumenetelmät Versio Päiväys Tekijä Kuvaus 0.01 5.12.01 Pekka Koskinen Alustava sisällysluettelo 0.1 7.12.01 Pekka Koskinen Ensimmäinen luonnos 1.0 11.12.01 Pekka

Lisätiedot

Testi generaattori. Testien ajotyökalu. Kuva 1. Offline mallipohjainen testaus

Testi generaattori. Testien ajotyökalu. Kuva 1. Offline mallipohjainen testaus 8.11.2010 1 (5) Mallipohjainen testaus ennen, nyt ja tulevaisuudessa Työtuntien kalleus, tietokoneiden tehojen nousu ja järjestelmien monimutkaistuminen houkuttelee käyttämään tietokonetta myös testauksen

Lisätiedot

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen

Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen Dynaaminen analyysi II Luento 4 Antti-Pekka Tuovinen www.cs.helsinki.fi 9 April 2018 1 Tavoitteet Black-box testitapausten suunnittelutekniikat II Tilamallien käyttö Syy-seurausverkot ja päätöstaulut Kombinaatioiden

Lisätiedot

Tapahtuipa Testaajalle...

Tapahtuipa Testaajalle... Tapahtuipa Testaajalle... - eli testaus tosielämässä 09.10.2007 Juhani Snellman Qentinel Oy 2007 Agenda Minä ja mistä tulen Testauksen konteksti Tapauksia tosielämästä ja työkaluja 2 Minä Juhani Snellman

Lisätiedot

Ohjelmiston toteutussuunnitelma

Ohjelmiston toteutussuunnitelma Ohjelmiston toteutussuunnitelma Ryhmän nimi: Tekijä: Toimeksiantaja: Toimeksiantajan edustaja: Muutospäivämäärä: Versio: Katselmoitu (pvm.): 1 1 Johdanto Tämä luku antaa yleiskuvan koko suunnitteludokumentista,

Lisätiedot

Laadun hallinta. Laatukustannukset. Laadun kustannuksista. Sami Kollanus TJTA330 Ohjelmistotuotanto

Laadun hallinta. Laatukustannukset. Laadun kustannuksista. Sami Kollanus TJTA330 Ohjelmistotuotanto Laadun hallinta Sami Kollanus TJTA330 Ohjelmistotuotanto 5.4. Laatukustannukset US National Institute of Standards and Technology: Riittämättömän testauksen kustannusten arvioitiin olevan 59 Mrd dollaria

Lisätiedot

Laadun hallinta. Laatukustannukset. Sami Kollanus TJTA330 Ohjelmistotuotanto

Laadun hallinta. Laatukustannukset. Sami Kollanus TJTA330 Ohjelmistotuotanto Laadun hallinta Sami Kollanus TJTA330 Ohjelmistotuotanto 5.4. Laatukustannukset US National Institute of Standards and Technology: Riittämättömän testauksen kustannusten arvioitiin olevan 59 Mrd dollaria

Lisätiedot

Suunnitteluvaihe prosessissa

Suunnitteluvaihe prosessissa Suunnittelu Suunnitteluvaihe prosessissa Silta analyysin ja toteutuksen välillä (raja usein hämärä kumpaankin suuntaan) Asteittain tarkentuva Analyysi -Korkea abstraktiotaso -Sovellusläheiset käsitteet

Lisätiedot

T Testiraportti - järjestelmätestaus

T Testiraportti - järjestelmätestaus T-76.115 Testiraportti - järjestelmätestaus 18. huhtikuuta 2002 Confuse 1 Tila Versio: 1.0 Tila: Päivitetty Jakelu: Julkinen Luotu: 18.04.2002 Jani Myyry Muutettu viimeksi: 18.04.2002 Jani Myyry Versiohistoria

Lisätiedot

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa:

Testaus käsite. Sekalaista testausasiaa. Testauksen käsitteestä. Kattavuusmitat. Jos ajatellaan, että testaus = V&V, voidaan erottaa: Testaus käsite Sekalaista asiaa Sami Kollanus 15.11.2006 Jos ajatellaan, että = V&V, voidaan erottaa: Staattinen Dynaaminen Toisaalta voidaan määritellä Myersin (1979) mukaan: Testaus on ohjelman suoritusta,

Lisätiedot

Ohjelmistotuotantoprojekti

Ohjelmistotuotantoprojekti Ohjelmistotuotantoprojekti Ryhmä Muppett TESTAUSDOKUMENTTI Helsinki 5.8.2008 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos Ohjelmistotuotantoprojekti, kesä 2008 Projekti: Muutos- ja korjauspyyntöjen

Lisätiedot

Laatukustannukset. Laadun hallinta. Laadun kustannuksista

Laatukustannukset. Laadun hallinta. Laadun kustannuksista Laatukustannukset Laadun hallinta Sami Kollanus TJTA330 Ohjelmistotuotanto 13.2.2007 US National Institute of Standards and Technology: Riittämättömän testauksen kustannusten arvioitiin olevan 59 Mrd dollaria

Lisätiedot

Yhteenveto. Menettelytavat

Yhteenveto. Menettelytavat Yhteenveto Ohjelmistotuotanto: Luotettavien ja tehokkaiden ohjelmistojärjestelmien tuottamista noudattaen hyviksi havaittuja menettelytapoja. Menettelytavat Prosessimalli (vesiputous/spiraali/kasvattava)

Lisätiedot

UCOT-Sovellusprojekti. Testausraportti

UCOT-Sovellusprojekti. Testausraportti UCOT-Sovellusprojekti Testausraportti Ilari Liukko Tuomo Pieniluoma Vesa Pikki Panu Suominen Versio: 0.02 Julkinen 11. lokakuuta 2006 Jyväskylän yliopisto Tietotekniikan laitos Jyväskylä Hyväksyjä Päivämäärä

Lisätiedot

Kurssin aihepiiri: ohjelmistotuotannon alkeita

Kurssin aihepiiri: ohjelmistotuotannon alkeita Kurssin aihepiiri: ohjelmistotuotannon alkeita [wikipedia]: Ohjelmistotuotanto on yhteisnimitys niille työnteon ja työnjohdon menetelmille, joita käytetään, kun tuotetaan tietokoneohjelmia sekä monista

Lisätiedot

Ohjelmistojen mallintaminen, kesä 2010

Ohjelmistojen mallintaminen, kesä 2010 582104 Ohjelmistojen mallintaminen, kesä 2010 1 Ohjelmistojen mallintaminen Software Modeling Perusopintojen pakollinen opintojakso, 4 op Esitietoina edellytetään oliokäsitteistön tuntemus Ohjelmoinnin

Lisätiedot

5. Järjestelmämallit. Mallinnus

5. Järjestelmämallit. Mallinnus 5. Järjestelmämallit Käyttäjävaatimukset pitää kirjoittaa luonnollisella kielellä. Niitä lukevat myös asiakkaat ja loppukäyttäjät. Järjestelmävaatimukset kannattaa kirjoittaa jollain rakenteisella kuvaustavalla.

Lisätiedot

Harjoitustyön testaus. Juha Taina

Harjoitustyön testaus. Juha Taina Harjoitustyön testaus Juha Taina 1. Johdanto Ohjelman teko on muutakin kuin koodausta. Oleellinen osa on selvittää, että ohjelma toimii oikein. Tätä sanotaan ohjelman validoinniksi. Eräs keino validoida

Lisätiedot

Oleelliset vaikeudet OT:ssa 1/2

Oleelliset vaikeudet OT:ssa 1/2 Oleelliset vaikeudet OT:ssa 1/2 Monimutkaisuus: Mahdoton ymmärtää kaikki ohjelman tilat Uusien toimintojen lisääminen voi olla vaikeaa Ohjelmista helposti vaikeakäyttöisiä Projektiryhmän sisäiset kommunikointivaikeudet

Lisätiedot

Tutkittua tietoa. Tutkittua tietoa 1

Tutkittua tietoa. Tutkittua tietoa 1 Tutkittua tietoa T. Dybå, T. Dingsøyr: Empirical Studies of Agile Software Development : A Systematic Review. Information and Software Technology 50, 2008, 833-859. J.E. Hannay, T. Dybå, E. Arisholm, D.I.K.

Lisätiedot

TOIMINNALLINEN MÄÄRITTELY MS

TOIMINNALLINEN MÄÄRITTELY MS TOIMINNALLINEN MÄÄRITTELY 11.11.2015 MS YLEISTÄ 1/2 jäsennelty etenee yleiskuvauksesta yksityiskohtiin kieliasultaan selkeä kuvaa myös tulevan järjestelmän ympäristöä tarpeellisella tarkkuudella kuvaa

Lisätiedot

Ohjelmien automaattisen verifioinnin reunamailla

Ohjelmien automaattisen verifioinnin reunamailla Ohjelmien automaattisen verifioinnin reunamailla Antti Siirtola Tietotekniikan laitos, Perustieteiden korkeakoulu, Aalto-yliopisto, antti.siirtola@aalto.fi Suomalainen Tiedeakatemia, Nuorten akatemiaklubi,

Lisätiedot

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE)

Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE) Malliperustainen ohjelmistokehitys (Model-Driven Engineering, MDE) Pasi Lehtimäki Helsinki 18.9.2007 HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos HELSINGIN YLIOPISTO HELSINGFORS UNIVERSITET UNIVERSITY

Lisätiedot

2. Äärelliset mallit (P&Y: 5)

2. Äärelliset mallit (P&Y: 5) 2. Äärelliset mallit (P&Y: 5) Malli (model) on kuvaus, joka on kuvattavaa kohdetta yksinkertaisempi, mutta joka säilyttää (mahdollisimman hyvin) mallinnettavan kohteen tarkasteltavat ominaisuudet. Hyvä

Lisätiedot

Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages

Työn laji Arbetets art Level Aika Datum Month and year Sivumäärä Sidoantal Number of pages Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos Institution Department Tekijä Författare Author Työn nimi Arbetets titel Title Oppiaine Läroämne Subject Työn laji Arbetets art Level Aika Datum Month

Lisätiedot

Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA. Karoliina Ljungberg

Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA. Karoliina Ljungberg Pro gradu -tutkielma Meteorologia SUOMESSA ESIINTYVIEN LÄMPÖTILAN ÄÄRIARVOJEN MALLINTAMINEN YKSIDIMENSIOISILLA ILMAKEHÄMALLEILLA Karoliina Ljungberg 16.04.2009 Ohjaajat: Ari Venäläinen, Jouni Räisänen

Lisätiedot

Unified Modeling Language

Unified Modeling Language Unified Modeling Language Confuse 25.11.2001 Tila Versio: 1.0 Vaihe: T1 Jakelu: Julkinen Luontipäivä: 15.11.2001 Antti Haapakoski Muutettu viimeksi: 25.11.2001 Antti Haapakoski Sisältö 1 Yleistä 1 2 Mallinnuksesta

Lisätiedot

Turvakriittisen projektin menetelmät ja työkalut

Turvakriittisen projektin menetelmät ja työkalut Turvakriittisen projektin menetelmät ja työkalut 1. Vaatimushallinta Vaatimushallintaan kohdistuu turvaluokitelluissa projekteissa paljon odotuksia. Etenkin jäljitettävyys vaatimuksiin, testaukseen ja

Lisätiedot

Määrittelyvaihe. Projektinhallinta

Määrittelyvaihe. Projektinhallinta Määrittelyvaihe Projektinhallinta testaus määrittely suunnittelu ohjelmointi käyttöönotto, testaus tuotteenhallinta laadunvarmistus dokumentointi vaatimustenhallinta Määrittely Määrittely, eli kansanomaisesti

Lisätiedot

Lähdekoodin suorituksen malli. 2. Äärelliset mallit (P&Y: 5) Ohjausvuokaaviot. Atomiset ehdot OVK:ssa. Atomiset ehdot

Lähdekoodin suorituksen malli. 2. Äärelliset mallit (P&Y: 5) Ohjausvuokaaviot. Atomiset ehdot OVK:ssa. Atomiset ehdot 2. Äärelliset mallit (P&Y: 5) Malli (model) on kuvaus, joka on kuvattavaa kohdetta yksinkertaisempi, mutta joka säilyttää (mahdollisimman hyvin) mallinnettavan kohteen tarkasteltavat ominaisuudet. Hyvä

Lisätiedot

Dynaaminen analyysi IV

Dynaaminen analyysi IV Dynaaminen analyysi IV Luento 9 Antti-Pekka Tuovinen 16 April 2013 1 Tavoitteet Kokemusperäinen testitapausten suunnittelu Yhteenvetoa suunnittelutekniikoista 16 April 2013 2 1 Testitapausten kokemusperäinen

Lisätiedot

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI

TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI TARKASTUSMENETTELYT JA NIIDEN APUVÄLINETUKI Vesa Tenhunen Tarkastusmenettelyt Keino etsiä puutteita ohjelmakoodeista, dokumenteista ym. ohjelmistoprosessissa syntyvästä materiaalista Voidaan käyttää kaikissa

Lisätiedot

Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005

Mallinnus. 5. Järjestelmämallit. Abstraktiot. Mallinnuksen etuja. Arkkitehtuurimalli. Yhteysmallit. Ohjelmistotuotanto, järjestelmämallit Kevät 2005 5. Järjestelmämallit Käyttäjävaatimukset pitää kirjoittaa luonnollisella kielellä. Niitä lukevat myös asiakkaat ja loppukäyttäjät. Järjestelmävaatimukset kannattaa kirjoittaa jollain rakenteisella kuvaustavalla.

Lisätiedot

Ohjelmiston testaus ja laatu. Testaustasot

Ohjelmiston testaus ja laatu. Testaustasot Ohjelmiston testaus ja laatu Testaustasot Testauksen vaihejako Tarpeet / sopimus Järjestelmätestaus Hyväksymiskoe Määrittely testauksen suunnittelu ja tulosten verifiointi Arkkitehtuurisuunnittelu Moduulisuunnittelu

Lisätiedot

Menetelmäraportti - Konfiguraationhallinta

Menetelmäraportti - Konfiguraationhallinta Menetelmäraportti - Konfiguraationhallinta Päiväys Tekijä 22.03.02 Ville Vaittinen Sisällysluettelo 1. Johdanto... 3 1.1 Tärkeimmät lyhenteet... 3 2. Konfiguraationhallinnan tärkeimmät välineet... 4 2.1

Lisätiedot

Standardi IEC Ohjelmisto

Standardi IEC Ohjelmisto Sundcon Oy Standardi IEC 61508 3 Ohjelmisto muutokset Matti Sundquist Sundcon Oy www.sundcon.fi Standardi IEC 61508 3 (1) Standardissa di esitetään vaatimukset niiden tietojen ja menettelytapojen valmisteluun,

Lisätiedot

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori

TIE Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2. Antti Jääskeläinen Matti Vuori TIE-21204 Ohjelmistojen testaus 2015 Harjoitustyö Vaiheet 1 ja 2 Antti Jääskeläinen Matti Vuori Työn yleiset järjestelyt 14.9.2015 2 Valmistautuminen Ilmoittaudu kurssille Lue harjoitustyön nettisivut

Lisätiedot

Aika/Datum Month and year Kesäkuu 2012

Aika/Datum Month and year Kesäkuu 2012 Tiedekunta/Osasto Fakultet/Sektion Faculty Laitos/Institution Department Filosofian, historian, kulttuurin ja taiteiden tutkimuksen laitos Humanistinen tiedekunta Tekijä/Författare Author Veera Lahtinen

Lisätiedot

Ohjelmistotuotanto, verifiointi ja validointi Syksy Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi

Ohjelmistotuotanto, verifiointi ja validointi Syksy Verifioinnin ja validoinnin ero. 7. Verifiointi ja validointi 7. Verifiointi ja validointi Verifiointi ja validointi (V&V) on ohjelmistotuotannon työvaihe, missä varmistetaan, että ohjelmisto täyttää sille asetetut implisiittiset ja eksplisiittiset vaatimukset ja

Lisätiedot

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät Tenttikysymykset 1. Selitä mitä asioita kuuluu tietojärjestelmän käsitteeseen. 2. Selitä kapseloinnin ja tiedon suojauksen periaatteet oliolähestymistavassa ja mitä hyötyä näistä periaatteista on. 3. Selitä

Lisätiedot

! #! %! & #!!!!! ()) +

! #! %! & #!!!!! ()) + ! #! %! & #!!!!! ()) + Tiedekunta/Osasto Fakultet/Sektion Faculty Humanistinen tiedekunta Laitos Institution Department Taiteiden tutkimuksen laitos Tekijä Författare Author Matti Pesonen Työn nimi Arbetets

Lisätiedot

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016

CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET. Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016 CT60A4150 OHJELMISTOTESTAUKSEN PERUSTEET Jussi Kasurinen (etu.suku@lut.fi) Kevät 2016 VIIME KERRALLA MENETELMIÄ Musta laatikko Valkea laatikko Harmaa laatikko Regressio Automaatio Rasitus (kuormitus)

Lisätiedot

58160 Ohjelmoinnin harjoitustyö

58160 Ohjelmoinnin harjoitustyö 58160 Ohjelmoinnin harjoitustyö Testaus 30.3.2009 Tuntiop. Sami Nikander sami.nikander@helsinki.fi 58160 Ohjelmoinnin harjoitustyö, Sami Nikander 30.3.2009 1 Testaus Ohjelman systemaattista tutkimista

Lisätiedot

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita.

Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita. Perusarkkitehtuurin ja vuorovaikutuksen mallintamisen perusteita. Arkkitehtuuriin vaikuttavat ympäristötekijät Jo kehittämisen alkuvaiheessa on tarpeellista hahmotella arkkitehtuurin perusratkaisu. Lähtökohdat

Lisätiedot

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1

Ohjelmistoarkkitehtuurit Syksy 2009 TTY Ohjelmistotekniikka 1 2 Ohjelmistoarkkitehtuurien kuvaus 2.1 Arkkitehtuurin kuvaukseen liittyvät käsitteet 2.2 Arkkitehtuurikuvaukset eri tasoilla 2.3 Arkkitehtuurinäkökulmat ja kuvaustyypit 2.4 Arkkitehtuuriviipaleiden kuvaus

Lisätiedot

Ohjelmistotuotteen hallinnasta

Ohjelmistotuotteen hallinnasta Ohjelmistotuotteen hallinnasta Luennon tavoitteista Luennon sisällöstä Motivointia Lähteinä: Haikala ja Märijärvi, Ohjelmistotuotanto Royce, Software Project Management, A Unified Framework 1 Tavoitteista

Lisätiedot

Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen

Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen Dynaaminen analyysi IV Luento 6 Antti-Pekka Tuovinen 23 April 2018 1 Tavoitteet Kokemusperäinen testitapausten suunnittelu Yhteenvetoa suunnittelutekniikoista 23 April 2018 2 Testitapausten kokemusperäinen

Lisätiedot

Testausprosessin vaatimukset. 2. Testausprosessi (Artikkelit) Vesiputousmallin ongelmia. V-mallin neljä osavaihetta. Testausprosessimalli V-malli

Testausprosessin vaatimukset. 2. Testausprosessi (Artikkelit) Vesiputousmallin ongelmia. V-mallin neljä osavaihetta. Testausprosessimalli V-malli 2. ausprosessi (Artikkelit) Nykyisin useimpien prosessimallien lähtökohta on, että testaus on oleellinen osa ohjelmistotuotantoprosessia. Itse asiassa huolellinen testaus vie helposti 50% tai enemmän käytettävistä

Lisätiedot

UML -mallinnus TILAKAAVIO

UML -mallinnus TILAKAAVIO UML -mallinnus TILAKAAVIO SISÄLLYS 3. Tilakaavio 3.1 Tilakaavion alku- ja lopputilat 3.2 Tilan nimi, muuttujat ja toiminnot 3.3 Tilasiirtymä 3.4 Tilasiirtymän vai tilan toiminnot 3.5 Tilasiirtymän tapahtumat

Lisätiedot

Ohjelmistotestaus -09

Ohjelmistotestaus -09 Ohjelmistotestaus Testaustyökalut- ja automaatio Testaustyökalut ja -automaatio Testaustyökaluilla tuetaan testaustyötä sen eri vaiheissa Oikea työkalu oikeaan tarkoitukseen Testausautomaatio perustuu

Lisätiedot

VBE II Tulosseminaari Teknologian valmiusaste. Virtuaalirakentamisen Laboratorio Jiri Hietanen

VBE II Tulosseminaari Teknologian valmiusaste. Virtuaalirakentamisen Laboratorio Jiri Hietanen VBE II Tulosseminaari Teknologian valmiusaste 1 2 Sisältö Tietomalleihin perustuva järjestelmä Järjestelmän osien valmiusaste Rakennuksen tietomallien tuottaminen Rakennuksen tietomalleihin perustuvat

Lisätiedot

käyttötapaukset mod. testaus

käyttötapaukset mod. testaus käyttötapaukset Jari Ojasti Nokia email : jari.ojasti@nokia.com puh : 040 5926 312 Kartta hyväksyntä määrittely suunnittelu suunnittelu mod. testaus integrointi sys. testaus Ylläpito koodaus (toteutus)

Lisätiedot

Ohjelmistotestauksen perusteita II

Ohjelmistotestauksen perusteita II Ohjelmistotestauksen perusteita II Luento 2 Antti-Pekka Tuovinen 14 March 2013 1 Luennon oppimistavoitteet Testausprosessin perustoiminnot Testauksen psykologiaa Testauksen seitsemän periaatetta 14 March

Lisätiedot

2. Ohjelmistotuotantoprosessi

2. Ohjelmistotuotantoprosessi 2. Ohjelmistotuotantoprosessi Peruskäsitteet: prosessimalli: mahdollisimman yleisesti sovellettavissa oleva ohjeisto ohjelmistojen tuottamiseen ohjelmistotuotantoprosessi: yrityksessä käytössä oleva tapa

Lisätiedot

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista

Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 582101 - Ohjelmistotekniikan menetelmät, Ohjelmistotuotannon työkaluista 1 Ohjelmistotuotannon työkaluuista Projektinhallintatyökalut (ei käsitellä tällä kurssilla) CASE- ja mallinnustyökalut (esim. Poseidon)

Lisätiedot

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta

Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 582101 - Ohjelmistotekniikan menetelmät, toteutuksesta ja testauksesta 1 Toteutuksesta ja testauksesta Suunnitteluprosessista Tarkan tason luokkasuunnittelu Siirtyminen UML-kaavioista Java-toteutukseen

Lisätiedot