Mittaaminen. Metriikat. Mitta-asteikkoja. Mielekkyys (meaningfulness) Mitta-asteikkojen eroja. Mittaamisen merkitys ohjelmistotuotannossa

Koko: px
Aloita esitys sivulta:

Download "Mittaaminen. Metriikat. Mitta-asteikkoja. Mielekkyys (meaningfulness) Mitta-asteikkojen eroja. Mittaamisen merkitys ohjelmistotuotannossa"

Transkriptio

1 Metriikat Metrics mittari (ei laite) Measure mitata, mitta, mittayksikkö, mittausväline Mittaaminen Mittaaminen ja mitta-asteikot Laatu ja laatutekijät Mittausprosessi Esimerkkejä metriikoista Koodirivien määrä on ylläpidettävyyden mittari. kompleksisuus oliometriikat kloonimetriikat (muita) ylläpidettävyyden mittareita esim. HP-MAS, ylläpidettävyyden kypsyysindeksi Metriikoiden vaatimuksia Prosessi, jossa numerot tai symbolit liitetään reaalimaailman olioiden (kohteiden) ominaisuuksiin, niin että numerot kuvaavat ominaisuuksia selvästi määriteltyjen sääntöjen mukaan Mittaaminen antaa viitteitä mitattavan kohteen ominaisuuksista 1 2 Mitta-asteikkoja Nominaali- eli luokitteluasteikko esim. ohjelmassa käytetty ohjelmointikieli ei järjestystä Ordinaali- eli järjestysasteikko esim. ohjelmien jakaminen pieniin, keskikokoisiin ja suuriin järjestäminen mahdollista, mutta laskutoimitukset eivät Intervalli- eli välimatka-asteikko asteikko esim. ohjelmistoprojektin eri vaiheiden kestojen vertailu yhteen- ja vähennyslasku (ei absoluuttista nollapistettä) Suhdeasteikko esim. ohjelmalohkojen pituuksien vertailu kaikki laskutoimitukset mahdollisia (absoluuttinen nollapiste) Absoluuttinen asteikko mittaus voi tapahtua vain tiettyä mittayksikköä käyttäen esim. lukumäärien mittaaminen, LOC 3 Mielekkyys (meaningfulness) Mielekäs lause (väite) mittaamista koskeva lause on mielekäs, jos lauseen totuusarvo pysyy yy samana, vaikka mittayksikkö vaihtuu mielekäs: ei mielekäs: Kalle on kaksi kertaa niin pitkä kuin Maija. Lämpötila Tokiossa on tänään kaksi kertaa niin paljon kuin se on Lontoossa. 4 Mitta-asteikkojen eroja Ohjelma A Ohjelma B Suorituskyky + - Ylläpidettävyys - + Ohjelma A Ohjelma B Suorituskyky 50 t/s 45 t/s Ylläpidettävyys 1 M /v 500 k /v Ohjelma A Ohjelma B Teoreettinen max/min Suorituskyky 50 t/s 45 t/s 100 t/s Ylläpidettävyys 1 M /v 500 k /v 450 k /v 5 Mittaamisen merkitys ohjelmistotuotannossa Ylläpidon kannalta muutettavan ohjelman mittaaminen muutostyön hyödyllisyyden arviointi Ohjelmistotuotannon tavoitteena on tuottaa korkealaatuisia ohjelmia määrättyjen kustannusten ja aikataulun mukaisesti ohjelmien kehitysprosessin kontrollointi kustannusten ja aikataulun kontrollointi ohjelmistotuotteen laadun kontrollointi 6 1

2 Laatu Metriikoiden avulla voidaan mitata järjestelmän tai prosessin laatua Laatuun liittyviä myyttejä: laatu tarkoittaisi hyvyyttä korkeaa varustetasoa, ylellisyyttä, kiiltoa laatua ei voisi mitata Laatu on yhdenmukaisuutta vaatimusten kanssa asiakkaan vaatimukset vs. kehittäjien vaatimukset laatutekijöiden sisältöä on vaikea määritellä vaatimusmäärittelystä on vaikea saada kattavaa Laadun hallinta 1. Laadun varmistus (quality assurance) menettelytapojen ja standardien vakiinnuttaminen 2. Laadun suunnittelu (quality planning) menettelytapojen ja standardien valinta 3. Laatukontrolli (quality control) varmistuminen siitä, että valittuja menettelytapoja ja standardeja on käytetty 7 8 Laatutekijät Quality factors Ohjelmistolta vaadittavia ominaisuuksia usein uus - ja yys -loppuisia sanoja engl. ility, ilities Ulkoiset laatutekijät käyttäjän havaitsemia ominaisuuksia esim. nopeus, luotettavuus, käytettävyys Sisäiset laatutekijät ohjelmistosuunnittelijoiden kannalta oleellisia ominaisuuksia esim. modulaarisuus, ylläpidettävyys 9 Analysoitavuus Muunneltavuus Vakaus Testattavuus Liitettävyys Asennettavuus Yhteensopivuus Korvattavuus Ylläpidettävyys Siirrettävyys ISO 9126 Ajan käyttö Resurssien käyttö Tehokkuus Toiminnallisuus ISO 9126 Ulkoinen ja sisäinen laatu Luotettavuus Käytettävyys Sopivuus Tarkkuus Yhteentoimivuus Tietoturva Kypsyys Vikasietoisuus Virheistä toipuminen Ymmärrettävyys Opittavuus Toimivuus Miellyttävyys 10 Analyzability Changeability Stability Testability Adaptability Installability Co-existence Replaceability Maintainability Portability ISO 9126 Time behavior Resource utilization Efficiency Functionality ISO 9126 External and internal quality Reliability Usability Suitability Accuracy Interoperability Security Maturity Fault tolerance Recoverability Understandability Learnability Operability Attractiveness 11 Laatutekijöiden väliset riippuvuudet Uud.käytettävyys Ylläpidettävyys Luotettavuus tt Tehokkuus Käytettävyys + Ylläpidettävyys + Uudelleenkäytettävyys Käytettävyys Tehokkuus Luotettavuus 12 2

3 Ylläpidettävyyteen vaikuttavia tekijöitä Ylläpidettävyys Analysoitavuus Muunneltavuus Vakaus Testattavuus Koko Kompleksisuus Liittymät 13 Laatutekijät vs. Ylläpidettävyys Luotettavuus Siirrettävyys Käytettävyys Mitattavat ominaisuudet Aliohjelman parametrien määrä Kompleksisuus Koodirivien määrä Virheilmoitusten määrä Käyttöohjeen pituus 14 Käytettävyyden laatutekijät Toimivuus Tehtävän suorittamiseen kulunut aika Tehtävän suorittamiseen tarvittujen toimintojen määrä Tietojen etsimiseen kulunut aika On-line avusteiden käyttämiseen kulunut aika Virheiden käsittelyyn kulunut aika Miellyttävyys Käyttäjän asenteet järjestelmää kohtaan ( 1-5 ) Opittavuus Aloittelijan käyttämä aika tehtävien suorittamiseen Järjestelmän ä oppimiseen i tarvittava aika Tietyn suoritustason saavuttamiseen tarvittava aika Taitojen hankkimisessa kohdatut vaikeudet (lkm) Tietojen etsimiseen kulunut aika On-line avusteiden käyttämiseen kulunut aika On-line avusteiden käyttötaajuus Virheiden käsittelyyn kulunut aika Tietämyksen ylläpitoon tarvittava aika Uudelleen opetteluun tarvittava aika Virheilmoitusten esiintymistaajuus Tiettyjen virheilmoitusten esiintymistaajuus 15 Avun tarpeen esiintymistiheys Tavoitteet Valitse mitattavat ominaisuudet Mittausprosessi Valitse mitattavat kohdat Mittaa valitut kohdat Tulkitse mittaustulokset Metriikkaohjelma Valmistaudu parannustoimenpiteisiin 16 Tavoitteita ylläpidettävyyden mittaamiselle Muutosten ja uudistamisen vaikutusten selvittäminen Huonorakenteisten ohjelman osien tunnistaminen Virhealttiiden ohjelman osien tunnistaminen Laadun muuttuminen järjestelmän eri versioiden välillä Tavoitteisiin vaikuttavia asioita Mittaamisen kohde esim. järjestelmän määrittely, testausprosessi Mittaamisen tarkoitus esim. luonnehdinta, arviointi, ennustaminen, korjaaminen, vertailu Näkökulma esim. suunnittelija, testaaja, käyttäjä Ympäristö esim. projekti, jonka tuotoksia mitataan

4 Metriikkaohjelma Tunnista tavoitteet (Goal) Muotoile kysymykset (Question) jotka ovat oleellisia valituille tavoitteille Valitse metriikat (Metric) jotka vastaavat valittuihin kysymyksiin GQM Esimerkkejä tavoitteista: käyttäjätyytyväisyyden maksimointi tarvittavan työmäärän ja työhön kuluvan ajan minimointi puutteiden minimointi 19 Tavoitteet Kysymykset Metriikat Käyttäjätyytyväisyyden maksimointi Työmäärän ja ajan minimointi Puutteiden minimointi Mitkä asiat koskettavat käyttäjää? Missä ovat pullonkaulat? Mihin resurssit kuluvat? Kuinka helppo järjestelmää on ylläpitää? Miten tehokkaasti järjestelmää voidaan kehittää? Vian ratkaisuun kuluva aika Järjestelmän luotettavuus Todettujen vikojen suhde korjattuihin Henkilöstöresurssien hyödyntäminen Laitteistoresurssien hyödyntäminen Henkilöstöresurssien hyödyntäminen Ratkaisujen aikataulutus Vikatyyppien jakauma Laitteistoresurssien hyödyntäminen Järjestelmän koko Vikataajuus Ohjelmiston epävakaisuus Ohjelmiston kompleksisuus Vikataajuus Todettujen vikojen suhde korjattuihin Järjestelmän luotettavuus GQM 20 Metriikkaohjelman onnistuminen Epäonnistumisen syitä tietoja kerätään valtavat määrät analysointia tehdään hyvin vähän tuloksia ei raportoida lainkaan johtoporras ei tue metriikkaohjelmaa Onnistumisen edellytyksiä selkeä tavoite kerättyjen tietojen analysointi johtoportaan tuki Ylläpidettävyyteen vaikuttavat tekijät tarkemmin Ylläpidettävyys Analysoitavuus Muunneltavuus Vakaus Testattavuus Koko Kompleksisuus Liittymät Koko (koodirivien määrä) Lines of code (LOC) Lasketaanko tyhjät rivit vai ei? Lasketaanko kommenttirivit vai ei? Lasketaanko vain suoritettavat lauseet? a [ i ] = getchar ( ); while ( a [ i ]!= \n ) { i++; a [ i ] = getchar ( ); a [ i ] = \0 ; while ( ( a [ i++ ] = getchar ( ) )!= \n ); a [ --i ] = \0 ; Ohjelmointityyli vaikuttaa koodirivien määrään 23 Kompleksisuus Määritelmiä: vaikeus ylläpitää, muuttaa tai ymmärtää ohjelmaa henkisen ponnistuksen määrä, joka tarvitaan ohjelman ymmärtämiseksi i Kompleksisuuden mittaaminen McCaben syklomaattinen kompleksisuus Halsteadin teoria toimintopisteet 24 4

5 McCabe s cyclomatic complexity Syklomaattinen kompleksisuus Kompleksisuuden mittaamisessa otetaan huomioon ohjelmassa esiintyvät kontrollirakenteet ohjelma on sitä kompleksisempi mitä enemmän siinä on kontrollirakenteita (silmukoita, ehtolauseita ym.) Ohjelma esitetään verkkona, jolle lasketaan syklomaattinen numero G: Syklomaattinen numero 7 3 V ( G ) = V ( G ) = e n + 2 * p jos haarautumat binaarisia: V ( G ) = 1 + π G1: Syklomaattisten numeroiden vertailu G2: 7 V ( G1 ) = 3 V ( G2 ) = Syklomaattisen kompleksisuuden ominaisuuksia V(G) 1 V(G) = 1, jos verkossa G on vain yksi polku Lauseiden lisääminen tai poistaminen ei vaikuta V(G):n arvoon Jos lisätään yksi haarautuma, niin V(G):n arvo kasvaa yhdellä V(G) riippuu vain verkon G haarautumista (valintarakenteesta) Suositus: kullekin aliohjelmalle: V(G) Aliohjelmien kompleksisuus Halsteadin teoria Primitiivisiä mittoja: P: C C F1: F2: V ( P U F1 U F2 ) = * 3 =5 V ( P ) = 1 V ( F1 ) = 2 V ( F2 ) = 2 n1 = erilaisten operaattoreiden määrä n2 = erilaisten operandien määrä N1 = operaattoreiden esiintymien kokonaismäärä N2 = operandien esiintymien kokonaismäärä joiden avulla voidaan laskea ohjelman pituus algoritmin vähimmäislaajuus (volume) ohjelman todellinen laajuus ohjelman taso (kuvaa kompleksisuutta) kielen taso (vakio kullekin kielelle)

6 Toimintopisteet (function points, FP) Kompleksisuuden lisäksi mittaa myös tuottavuutta Tuottavuutta (tai kustannuksia) ei aina kannata sitoa koodirivien määrään tuottavuus on erilainen eri ohjelmointikielille mittaustuloksia voidaan tarvita jo ennen koodin kirjoittamista Toiminnon tyyppi Toimintopistelomake Yksinkertainen Keskimääräinen Monimutkainen Syöttötoiminnot 3 * 4 * 6 * Tulostustoiminnot 4 * 5 * 7 * Kyselyt 3 * 4 * 6 * Sisäiset tiedostot 7 * 10 * 15 * Ulkoiset rajapinnat 5 * 7 * 10 * Toimintojen määrä (function counts, FC) Yht Järjestelmän ominaisuudet 1. Tarvitaanko järjestelmässä tietojen välistä kommunikointia? 2. Kuuluuko järjestelmään hajautettuja prosesseja? 3. Onko suorituskyky yykriittisessä asemassa? 4. Ajetaanko järjestelmää kuormitetussa ympäristössä? 5. Tarvitaanko reaaliaikaisia tietoja? 6. Vaatiiko reaaliaikaisten tietojen lukeminen useita ikkunoita tai operaatioita? 7. Päivitetäänkö kantatiedostot (master file) reaaliajassa? Vastataan asteikolla Järjestelmän ominaisuudet (jatkuu) 8. Ovatko syötteet, tulosteet, tiedostot ja kyselyt monimutkaisia? 9. Onko järjestelmän sisäinen prosessointi monimutkaista? as a 10. Onko koodi suunniteltu uudelleenkäytettäväksi? 11. Sisältyvätkö konversio- ja asennussuunnitelmat järjestelmän suunnitteluun? 12. Onko järjestelmä suunniteltu helppokäyttöiseksi? 13. Tarvitaanko eri asennuspaketit eri käyttäjiä varten? 14. Onko järjestelmä suunniteltu mukautuvaksi käyttäjän mukaan? 34 Ominaisuuksien vaikutus Vaikutusaste Arvo Ei ollenkaan 0 Vähäinen vaikutus 1 Kohtalainen vaikutus 2 Keskimääräinen vaikutus 3 Merkittävä vaikutus 4 Vahva vaikutus 5 Kokonaisvaikutus (total degree of influence, TDI) Kokonaisvaikutus (TDI) Tietojen välinen kommunikointi Hajautetut funktiot Suorituskyky Kuormitettu ympäristö Reaaliaikatietojen siirtonopeus Reaaliaikatietojen syöttäminen Käytön tehokkuus Rajapintojen monimutkaisuus Prosessoinnin monimutkaisuus Uudelleenkäytettävyys Asennuksen helppous Käytön helppous Erilaiset asennuspaketit Joustavuus

7 Toimintopisteiden laskeminen Ominaisuuksien kokonaisvaikutus (TDI) maksimi = 5 * 14 = 70 keskimääräinen arvo = 35 Toimintojen määrä (FC) Toimintopisteet (FP) FP = FC * ( * TDI ) Toimintopisteet eri kielissä Ohjelmointikieli LOC/FP (keskimäärin) assembly 320 C 128 Cobol 106 Fortran 106 Pascal 90 C++ 64 Ada95 53 Visual Basic 32 Smalltalk 22 SQL Muita kompleksisuusmetriikoita Kokonaiskompleksisuus ohjelman kompleksisuus mitataan laskemalla yhteen aliohjelmien kompleksisuus k Aliohjelmien tai operaatioiden keskimääräinen kompleksisuus Aliohjelmien tai operaatioiden määrä LOC Kompleksisuusmetriikoiden vaatimuksia/ominaisuuksia Metriikalla täytyy olla riittävä erotuskyky esim. yksi tai kaksi arvoa eivät riitä Erotuskyky ei saa olla liian suuri esim. jokaiselle ohjelmalle tulee eri arvo Sama toiminnallisuus i voidaan kirjoittaa itt eri ohjelmiin, niin että ohjelmilla on eri kompleksisuus Ohjelman osan kompleksisuus ei voi olla suurempi kuin koko ohjelman kompleksisuus Ohjelman lauseiden järjestyksen vaihtaminen voi vaikuttaa kompleksisuuteen Muuttujan nimen vaihtaminen ei saa vaikuttaa kompleksisuuteen Oliometriikat Luokkien väliset ja sisäiset yhteydet Yhteenkuuluvuus (cohesion) luokan/moduulin sisäinen yhtenäisyys Sidonnat (coupling) luokan/moduulin sidonnat toisiin luokkiin/moduuleihin Luokkahierarkiaan liittyvät metriikat Suositeltava: high cohesion low coupling 41 Hyväksyttä äviä Yhteenkuuluvuuden (koheesion) tasot (1/2) Toiminnallinen GetCustomerName ( ) operaatiolla on yksi, hyvin määritelty toiminto (tehtävä) Peräkkäinen toiminnot täytyy suorittaa tietyssä järjestyksessä DoStep1 ( ); toiminnot tarvitsevat samaa dataa DoStep2 ( ); mutta toiminnot eivät muodosta kokonaista tehtävää Viestintään perustuva toiminnot tarvitsevat samaa dataa mutta toiminnot eivät muuten liity toisiinsa Ajallinen GetNameAndChangePhoneNumber ( ) toiminnot suoritetaan samaan aikaan Startup ( ) 42 7

8 Vältettäv viä Yhteenkuuluvuuden (koheesion) tasot (2/2) Menettelytapoihin perustuva toiminnot suoritetaan tietyssä järjestyksessä mutta toiminnot eivät käytä samaa dataa /* get name */ /* get address */ /* get phone */ Looginen haluttu toiminto valitaan kontrollilipun perusteella ComputeAll ( ) Sattumanvarainen toiminnot eivät mitenkään liity toisiinsa Arviointikriteerit koko/määrä läheisyys Sidontojen arviointi Tiedon kulku parametrien välityksellä vs. globaalien muuttujien kautta näkyvyys joustavuus Tasot: operaatio välittää dataa toiselle operaatiolle operaatio kertoo toiselle, mitä pitää tehdä operaatiot käsittelevät samaa globaalia dataa Esimerkkejä yksinkertaisista oliometriikoista Attribuuttien määrä Operaatioiden määrä julkisten operaatioiden määrä yksityisten operaatioiden määrä Sellaisten operaatioiden id määrä, ä jotka korvataan aliluokissa Aliluokkien lisäämien operaatioiden määrä Aliluokkien määrä Luokkahierarkian syvyys Luokan kompleksisuus operaatioiden kompleksisuuksien summa Lisää oliometriikoita Lyhenne Metriikka Tarkoitus LCOM Lack of cohesion in methods Yhteenkuuluvuus TCC Tight class cohesion Yhteenkuuluvuus DAC Data abstraction coupling Sidonnat CBO Coupling between object classes Sidonnat RFC Response for a class Sidonnat, kompleksisuus MPC Message passing coupling Sidonnat attribuutti = jäsenmuuttuja, ilmentymämuuttuja operaatio = jäsenfunktio, metodi Yhteenkuuluvuuden mittaaminen LCOM Lack of Cohesion in Methods tarkastellaan luokan operaatioita ja niissä esiintyviä luokan attribuutteja operaatiot, t joissa viitataan t samaan attribuuttiin, ttii kuuluvat samaan joukkoon lasketaan, kuinka monta erillistä em. joukkoa löytyi LCOM = 1 LCOM = 1 Yhteenkuuluvuuden mittaaminen TCC Tight Class Cohesion toisiinsa yhteydessä olevien operaatioiden suhteellinen määrä operaatiot t ovat yhteydessä toisiinsa: ii jos ne viittaavat samaan attribuuttiin jos toinen kutsuu toista (suoraan tai epäsuorasti) näin saatu operaatioparien määrä (OP lkm ) suhteutetaan yhteyksien maksimimäärään (OP max ) OP max = n ( n 1 ) 2 TCC = OP lkm / OP max

9 Sidontojen mittaaminen DAC (data abstraction coupling) luokat voivat olla sidoksissa toisiinsa attribuuttien kautta sellaisten attribuuttien määrä, jotka ovat jonkin toisen luokan ilmentymiä iä (abstraktit tietotyypit) t t it) CBO (coupling between object classes) luokat voivat olla sidoksissa toisiinsa operaatioiden välityksellä luokan operaatiossa viitataan toisen luokan operaatioon tai attribuuttiin niiden luokkien määrä, joihin tarkasteltava luokka on sidoksissa 49 Sidontojen mittaaminen RFC (response for a class) niiden operaatioiden määrä, joita voidaan kutsua kutsuttaessa luokan operaatioita operaatioiden id kutsuketjuun k tj kuuluvat operaatiot t (sekä luokan sisäiset että ulkoiset) mittaa myös kompleksisuutta MPC (message passing coupling) operaatiokutsujen määrä luokassa Kuuluuko periytyminen sidontoihin? 50 Aliohjelmien väliset sidonnat Fan-in tarkastellaan aliohjelmaan tulevia kutsuja niiden aliohjelmien määrä, jotka kutsuvat jotakin tiettyä aliohjelmaa Fan-out tarkastellaan aliohjelmasta lähteviä kutsuja niiden aliohjelmien määrä, joita jokin tietty aliohjelma kutsuu Erottaminen (MPC ja fan-out) Fan-out = 1 MPC = 2 Fan-in = 2 A B C Fan-out = 1 MPC = 1 Fan-out moduulitasolla Luokkahierarkiaan liittyviä metriikoita Luokkien välisten periytymissuhteiden mittaaminen Vanhimmat metriikat DIT (Depth of Inheritance Tree) NOC (Number of Children) Erikoistaminen ja uudelleenkäyttö Luokkahierarkia DIT (Depth of Inheritance Tree) pisimmän periytymispolun pituus luokasta sen kantaluokkaan (kantaluokkiin) kertoo, millä tasolla luokka on periytymishierarkiassa jos luokka on hyvin syvällä (DIT > 5), on vaikea nähdä, mitä attribuutteja ja operaatioita luokalla on huonontaa ylläpidettävyyttä

10 Luokkahierarkia NOP (Number of Parents) suorien kantaluokkien määrä yksittäisperiytyminen: NOP = 1 NOA (Number of Ancestors) kaikkien kantaluokkien määrä NOC (Number of Children) suorien jälkeläisten määrä NOD (Number of Descendants) kaikkien jälkeläisten määrä Luokkahierarkian indeksit Mittaa luokkien uudelleenkäytön suhdelukua Uudelleenkäyttöindeksi (U) = kantaluokkien määrä / luokkien kokonaismäärä Mittaa, kuinka hyvin kantaluokat kuvaavat järjestelmän abstrakteja ominaisuuksia Erikoistamisindeksi (S) = jälkeläisluokkien määrä / kantaluokkien määrä Kloonimetriikat Copy-paste ohjelmoinnin määrän mittaaminen Kopioidun koodin (kloonien) tunnistaminen Esimerkkimetriikoita CC (Clone Coverage) CCL (Clone Classes) CI (Clone Instances) Metriikoita voidaan soveltaa nimiavaruuksiin/pakkauksiin, luokkiin, operaatioihin 57 else if ( instring ) { if ( ContainsSubstring ( line, \\ ) ) { return 2; else if ( ContainsSubstring ( line, index, \\\ ) ) { return 2; else if ( line [ index ] == ) { instring = false; return 1; else { return 1; Klooniesimerkki else if ( inchar ) { if ( ContainsSubstring ( line, \\ ) ) { return 2; else if ( ContainsSubstring ( line, \ ) ) { return 2; else if ( line [ index ] == \ ) { inchar = false; return 1; else { return 1; 58 Kloonimetriikat Tarvittavia parametreja kloonin minimipituus esim. LOC kloonin tunnistaminen täysi vastaavuus osittainen vastaavuus etsinnän laajuus operaatioiden rungot luokkien toteutukset Kloonipeittävyys CC (Clone Coverage) mittaa kopioidun koodin osuutta jossakin kokonaisuudessa (esim. luokassa, operaatiossa) jos operaatio on täysin kopioitu, CC = 1 voidaan tunnistaa eniten kopioidut koodin osat vaikuttaa ylläpidettävyyteen

11 Klooniluokat ja kloonien esiintymät Kloonin esiintymä (instance) kopioitu koodikatkelma (fragment) Klooniluokka ryhmä (melkein) identtisiä koodikatkelmia klooniluokka sisältää vähintään kaksi klooniesiintymää CI (Number of Clone Instances) CCL (Number of Clone Classes) HP-MAS HP-MAS (maintainability assessment system) arviointimalli ylläpidettävyyden mittaamiseksi Ylläpidettävyyden kolme ulottuvuutta: kontrollirakenne k kompleksisuus, kontrollivuo, modulaarisuus tietoalkioiden rakenne tietotyypit, tietovuo, globaalit muuttujat, I/O koodin ulkoasu tekstin asettelu, nimeämiskäytännöt, kommentointi HP-MAS:n soveltaminen Kutakin kolmea ulottuvuutta arvioidaan sopivilla metriikoilla Metriikoilla on usein optimiarvoalue jos mitattu arvo sijoittuu rajojen sisälle, ylläpidettävyys on hyvä jos arvo sijoittuu arvoalueen ulkopuolelle, ylläpidettävyys on huono voidaan mitata suhteellinen poikkeama optimialueesta 63 HP-MAS:n soveltaminen Kunkin kolmen ulottuvuuden ylläpidettävyydelle lasketaan arvo (DM) Lopullinen ylläpidettävyysindeksi (MI) saadaan kolmen DM-arvon keskiarvosta tai tulosta vaihtelee välillä 0 1 (prosentteina 0-100) MI < 65: ylläpidettävyys on huono 65 MI < 85: ylläpidettävyys on keskinkertainen MI 85: ylläpidettävyys on hyvä 64 HPMAS-esimerkki Ennen muutosta Muutoksen jälkeen LOC 1, , Moduuleiden määrä Kompleksisuus V(G) HPMASindeksi Ero prosentteina 65 Ylläpidettävyyden kypsyysindeksi Vakaus eli julkistusversioiden väliset erot M T = moduulien nykyinen yy määrä F C = muuttuneiden moduulien määrä F A = lisättyjen moduulien määrä F D = poistettujen moduulien määrä M T ( F A + F C + F D ) SMI (kypsyysindeksi) = M T 66 11

12 Muita ylläpidettävyyden mittareita MTTR Mean Time to Repair Laskennassa tarvittavat tiedot: ongelman tunnistamiseen kulunut aika hallinnollinen viive ylläpitotyökalujen hankkimiseen kulunut aika ongelman analysointiin kulunut aika tarvittavan muutoksen määrittelyyn kulunut aika muutoksen toteuttamiseen kulunut aika sisältää testaukset ja tarkistukset Vielä lisää ylläpidettävyyden mittareita Muutosten tekemisen kokonaisaika suhteutettuna muutosten määrään Ratkaisemattomien ongelmien määrä Ratkaisemattomiin ongelmiin kulunut aika Sellaisten muutosten osuus prosentteina, jotka ovat aiheuttaneet uusia vikoja Niiden moduulien määrä, joita on jouduttu muuttamaan muutoksen toteuttamiseksi Mittausprosessi (yhteenveto) Tavoite muutosten vaikutusten selvittäminen esim. huonorakenteisten ohjelman osien tunnistaminen laadun muuttuminen järjestelmän eri versioiden välillä Tarkentaminen/konkretisointi miten tavoitteet voidaan saavuttaa? miten päästään mitattaviin ominaisuuksiin? Mittaustulokset numeroiden liittäminen ominaisuuksiin tulosten tulkinta ja jatkomenettely Metriikoiden vaatimuksia Yksinkertaisia ja helposti laskettavia Tulokset intuitiivisesti pääteltävissä Yhtenäisiä ja objektiivisia Yksiköiltään yhtenäisiä ja järkeviä Riippumattomia ohjelmointikielistä Mittaaminen antaa viitteitä ominaisuuksista Metriikkaetiketti Yksityiset metriikat Julkiset metriikat Käytä mittaustulosten tulkinnassa tervettä järkeä ja ota huomioon yritykselle ominaiset toimintatavat Anna säännöllistä palautetta mittausten suorittajille Älä käytä metriikkoja palkitsemisen perusteena Älä käytä ä metriikkoja uhkailemiseen i Aseta selvät päämäärät ja käytä metriikkoja apuna päämäärien saavuttamiseksi Metriikkoja, jotka paljastavat ongelmia, ei pidä pitää negatiivisina; ne vain osoittavat kohdan, jossa prosessia pitäisi kehittää Älä tukeudu jääräpäisesti yhteen metriikkaan jättämällä muut tärkeät metriikat huomiotta 71 12

ITK130 Ohjelmistojen luonne

ITK130 Ohjelmistojen luonne ITK130 Ohjelmistojen luonne Luennon sisältö Ohjelmistotekniikka ja vaatimukset Ohjelmistotuote Ei-toiminnallisten vaatimusten luokittelu Sisäiset ja ulkoiset vaatimukset Oikeellisuus Luotettavuus Kestävyys

Lisätiedot

Sytyke ry:n laivaseminaari Software Technology Transfer Pekka Forselius

Sytyke ry:n laivaseminaari Software Technology Transfer Pekka Forselius Sytyke ry:n laivaseminaari 3.-5.9.2002 Testaus ja Laatu Ohjelmiston laadun ja laatuvaatimusten mittaaminen Sytyke ry:n laivaseminaari 3.-5.9.2002 Hyvä laatu? Testaaminen? Ohjelmiston hyvällä laadulla tarkoitamme

Lisätiedot

Työkalujen yleinen arkkitehtuuri. Ylläpitoon liittyvät työkalut. Ylläpitotehtävien mukaiset työkalut. Työkalujen jaotteluperusteita

Työkalujen yleinen arkkitehtuuri. Ylläpitoon liittyvät työkalut. Ylläpitotehtävien mukaiset työkalut. Työkalujen jaotteluperusteita Ylläpitoon liittyvät työkalut Käyttötarkoituksia ohjelman ymmärtäminen visualisointi etsintä dokumentointi muutosten hallinta koodin muotoilu (pretty printer) erikoistuneet editorit metriikkoihin liittyvät

Lisätiedot

Luotettavuuden mittaamisesta. Ilkka Norros ja Urho Pulkkinen

Luotettavuuden mittaamisesta. Ilkka Norros ja Urho Pulkkinen Luotettavuuden mittaamisesta Ilkka Norros ja Urho Pulkkinen IP-verkon luotettavuuden aspektit Regulator User Provider availability reliability maintainability controllability Designer failures errors attacks

Lisätiedot

RAKENTEEN ELI SUUNNITTELUN MITTAREITA

RAKENTEEN ELI SUUNNITTELUN MITTAREITA RAKENTEEN ELI SUUNNITTELUN MITTAREITA 133 Dynaamiset ja staattiset mittarit Tuotteen mittarit mittaavat tuotteen a joko (staattisesti) ohjelmakoodista tai (dynaamisesti) sen suorituksesta. Suoritusaikana

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

8. Laadunvalvonta. Mitä laatu on? Eräs laadun määritelmä. Laadun hallinta. Laatuvaatimukset. Prosessin ja tuotteen laatu

8. Laadunvalvonta. Mitä laatu on? Eräs laadun määritelmä. Laadun hallinta. Laatuvaatimukset. Prosessin ja tuotteen laatu 8. Laadunvalvonta Mitä laatu on? Ohjelmistojen laatu on parantunut paljon viimeisen 15 vuoden aikana. Tämä näkyy mm. siinä, että asiakkaat ovat keskimäärin tyytyväisempiä tuotteiden toimintaan kuin 90-luvun

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

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 1.4.2009 T-106.1208 Ohjelmoinnin perusteet Y 1.4.2009 1 / 56 Tentti Ensimmäinen tenttimahdollisuus on pe 8.5. klo 13:00 17:00 päärakennuksessa. Tämän jälkeen

Lisätiedot

arviointi edellyttää historiatietoja, esim. mittareiden kalibroimiseksi

arviointi edellyttää historiatietoja, esim. mittareiden kalibroimiseksi Työmäärän arviointi algoritmiset menetelmät asiantuntija-arviot analogiaan perustuvat arviot Parkinsonin laki: "Työ vie kaiken käytettävissä olevan ajan." hinnoittelu kilpailun mukaan top-down arviointi

Lisätiedot

OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN

OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN 80 Mitat ja mittaus You can t control what you can t measure Tom DeMarco, 1982. DeMarcon toteama on kaikkien mittausspesialistien motto: ilman mittausta ei ole

Lisätiedot

Algoritmit 1. Luento 3 Ti Timo Männikkö

Algoritmit 1. Luento 3 Ti Timo Männikkö Algoritmit 1 Luento 3 Ti 17.1.2017 Timo Männikkö Luento 3 Algoritmin analysointi Rekursio Lomituslajittelu Aikavaativuus Tietorakenteet Pino Algoritmit 1 Kevät 2017 Luento 3 Ti 17.1.2017 2/27 Algoritmien

Lisätiedot

etunimi, sukunimi ja opiskelijanumero ja näillä

etunimi, sukunimi ja opiskelijanumero ja näillä Sisällys 1. Algoritmi Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.1 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

Laadunvarmistuksesta. Luennon tavoitteista. Motivointia. Sommerville, Software Engineering (6th ed.)

Laadunvarmistuksesta. Luennon tavoitteista. Motivointia. Sommerville, Software Engineering (6th ed.) Laadunvarmistuksesta Luennon tavoitteista Luennon sisällöstä Motivointia Lähteinä: Sommerville, Software Engineering (6th ed.) 1 Tavoitteista Luentojen jälkeen opiskelijan tulisi osata: ymmärtää laadunhallintaprosessin

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.2.2010 1 / 46 Merkkijonot Merkkijonojen avulla ohjelmassa voi esittää tekstitietoa, esim. nimiä, osoitteita ja

Lisätiedot

1. Algoritmi 1.1 Sisällys Algoritmin määritelmä. Aiheen pariin johdatteleva esimerkki. Muuttujat ja operaatiot (sijoitus, aritmetiikka ja vertailu). Algoritmista ohjelmaksi. 1.2 Algoritmin määritelmä Ohjelmointi

Lisätiedot

HELIA 1 (19) Outi Virkki Käyttöliittymät ja ohjelman suunnittelu 8.12.1998

HELIA 1 (19) Outi Virkki Käyttöliittymät ja ohjelman suunnittelu 8.12.1998 HELIA 1 (19) Luento 9 Suunnittelumenetelmien soveltuvuudesta... 2 Sovellustyyppi... 2 Projektikohtaiset tekijät... 3 Henkilöstötekijät... 3 Ongelma-alueeseen liittyvät tekijät... 3 Tuotteeseen liittyvät

Lisätiedot

Ohjelmoinnin peruskurssi Y1

Ohjelmoinnin peruskurssi Y1 Ohjelmoinnin peruskurssi Y1 CSE-A1111 30.9.2015 CSE-A1111 Ohjelmoinnin peruskurssi Y1 30.9.2015 1 / 27 Mahdollisuus antaa luentopalautetta Goblinissa vasemmassa reunassa olevassa valikossa on valinta Luentopalaute.

Lisätiedot

Metriikat JOT 2006. Ohjelmistometriikat. Arvioidaan joko ohjelmistoa tai ohjelmistoty!t".

Metriikat JOT 2006. Ohjelmistometriikat. Arvioidaan joko ohjelmistoa tai ohjelmistoty!t. Metriikat JOT 2006 Ohjelmistometriikat Arvioidaan joko ohjelmistoa tai ohjelmistoty!t". Pyrit""n varmentamaan tehdyt oletukset tai vaatimukset, tai seuraamaan niiden t"yttymist". Ensin tulee olla selvill",

Lisätiedot

ISO/IEC 25000 sarja (SQUARE)

ISO/IEC 25000 sarja (SQUARE) ISO/IEC 25000 sarja (SQUARE) Software product Quality Requirements and Evaluation (SQuaRE) Risto Nevalainen, FiSMA ry FiSMA 1 Taustaa, historiaa Ohjelmiston laadun mittaaminen on yksi vanhimmista SC7 standardointialueista

Lisätiedot

Muistutus aikatauluista

Muistutus aikatauluista Muistutus aikatauluista (Nämä eivät välttämättä koske avoimen yo:n opiskelijoita Erkki Kailan rinnakkaisella kurssilla) Luento 1: kotitehtävät sulkeutuvat 20.9 12:00, ennen tutoriaalia Tutoriaali 1 sulkeutuu

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 15.3.2010 T-106.1208 Ohjelmoinnin perusteet Y 15.3.2010 1 / 56 Tiedostoista: tietojen tallentaminen ohjelman suorituskertojen välillä Monissa sovelluksissa ohjelman

Lisätiedot

Ehto- ja toistolauseet

Ehto- ja toistolauseet Ehto- ja toistolauseet 1 Ehto- ja toistolauseet Uutena asiana opetellaan ohjelmointilauseet / rakenteet, jotka mahdollistavat: Päätösten tekemisen ohjelman suorituksen aikana (esim. kyllä/ei) Samoja lauseiden

Lisätiedot

Käytettävyyslaatumallin rakentaminen verkkosivustolle

Käytettävyyslaatumallin rakentaminen verkkosivustolle Käytettävyyslaatumallin rakentaminen verkkosivustolle Tapaus kirjoittajan ABC-kortti Oulun yliopisto tietojenkäsittelytieteiden laitos pro gradu -tutkielma Timo Laapotti 9.6.2005 Esityksen sisältö Kirjoittajan

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

Ohjelmointiharjoituksia Arduino-ympäristössä

Ohjelmointiharjoituksia Arduino-ympäristössä Ohjelmointiharjoituksia Arduino-ympäristössä Yleistä Arduino-sovelluksen rakenne Syntaksi ja käytännöt Esimerkki ohjelman rakenteesta Muuttujat ja tietotyypit Tietotyypit Esimerkkejä tietotyypeistä Ehtolauseet

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 26.1.2009 T-106.1208 Ohjelmoinnin perusteet Y 26.1.2009 1 / 33 Valintakäsky if syote = raw_input("kerro tenttipisteesi.\n") pisteet = int(syote) if pisteet >=

Lisätiedot

4. Lausekielinen ohjelmointi 4.1

4. Lausekielinen ohjelmointi 4.1 4. Lausekielinen ohjelmointi 4.1 Sisällys Konekieli, symbolinen konekieli ja lausekieli. Lausekielestä konekieleksi: - Lähdekoodi, tekstitiedosto ja tekstieditorit. - Kääntäminen ja tulkinta. - Kääntäminen,

Lisätiedot

OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN

OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN Mitat ja Mittaus OHJELMISTOJEN LAADUN JA KOON MITTAAMINEN 80 Vaikka mittauksia ei tehtäisikään täydessä laajuudessaan (tai tehdään kertaluonteisesti), mittausohjelma toimii kommunikaation ja sitouttamisen

Lisätiedot

Ohjelmiston testaus ja laatu. Testaus yleistä

Ohjelmiston testaus ja laatu. Testaus yleistä Ohjelmiston testaus ja laatu Testaus yleistä Määritelmä Testaus on systemaattinen lähestymistapa ohjelmistoissa esiintyvien virheiden löytämiseksi ohjelmaa suorittamalla. Testattaessa pyritään luomaan

Lisätiedot

Java-kielen perusteet

Java-kielen perusteet Java-kielen perusteet Tunnus, varattu sana, kommentti Muuttuja, alkeistietotyyppi, merkkijono, Vakio Tiedon merkkipohjainen tulostaminen Ohjelmointi (ict1tx006) Tunnus (5.3) Javan tunnus Java-kirjain Java-numero

Lisätiedot

Työmäärän arviointi. Vaihtoehtoja. Sami Kollanus TJTA330 Ohjelmistotuotanto

Työmäärän arviointi. Vaihtoehtoja. Sami Kollanus TJTA330 Ohjelmistotuotanto Työmäärän arviointi Sami Kollanus TJTA330 Ohjelmistotuotanto 20.3. Vaihtoehtoja Arvioidaan projektin jälkeen (onnistuu varmasti) Verrataan karkeasti samanlaisiin aiempiin projekteihin Ositetaan projekti

Lisätiedot

Työmäärän arviointi. Vaihtoehtoja. Arviointiprosessi. Sami Kollanus TJTA330 Ohjelmistotuotanto

Työmäärän arviointi. Vaihtoehtoja. Arviointiprosessi. Sami Kollanus TJTA330 Ohjelmistotuotanto Työmäärän arviointi Sami Kollanus TJTA330 Ohjelmistotuotanto 20.3. Vaihtoehtoja Arvioidaan projektin jälkeen (onnistuu varmasti) Verrataan karkeasti samanlaisiin aiempiin projekteihin Ositetaan projekti

Lisätiedot

String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1

String-vertailusta ja Scannerin käytöstä (1/2) String-vertailusta ja Scannerin käytöstä (2/2) Luentoesimerkki 4.1 String-vertailusta ja Scannerin käytöstä (1/2) Vertailuja tehdessä törmätään usein tilanteeseen, jossa merkkijonoa (esimerkiksi merkkijonomuuttujaa) pitää vertailla toiseen merkkijonoon. Tällöin tavanomainen

Lisätiedot

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta

Operaattoreiden ylikuormitus. Operaattoreiden kuormitus. Operaattoreiden kuormitus. Operaattoreista. Kuormituksesta C++ - perusteet Java-osaajille luento 5/7: operaattoreiden ylikuormitus, oliotaulukko, parametrien oletusarvot, komentoriviparametrit, constant, inline, Operaattoreiden ylikuormitus Operaattoreiden kuormitus

Lisätiedot

Mittaaminen menettely (sääntö), jolla tilastoyksikköön liitetään tiettyä ominaisuutta kuvaava luku, mittaluku.

Mittaaminen menettely (sääntö), jolla tilastoyksikköön liitetään tiettyä ominaisuutta kuvaava luku, mittaluku. 1/11 4 MITTAAMINEN Mittaaminen menettely (sääntö), jolla tilastoyksikköön liitetään tiettyä ominaisuutta kuvaava luku, mittaluku. Mittausvirhettä johtuen mittarin tarkkuudesta tai häiriötekijöistä Mittarin

Lisätiedot

Rajapinta (interface)

Rajapinta (interface) 1 Rajapinta (interface) Mikä rajapinta on? Rajapinta ja siitä toteutettu luokka Monimuotoisuus ja dynaaminen sidonta Rajapinta vs periytyminen 1 Mikä rajapinta on? Rajapintoja käytetään, kun halutaan määritellä

Lisätiedot

Numeeriset menetelmät

Numeeriset menetelmät Numeeriset menetelmät Luento 1 Ti 6.9.2011 Timo Männikkö Numeeriset menetelmät Syksy 2011 Luento 1 Ti 6.9.2011 p. 1/28 p. 1/28 Numeriikan termejä Simulointi: Reaalimaailman ilmiöiden jäljitteleminen (yleensä)

Lisätiedot

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit

IDL - proseduurit. ATK tähtitieteessä. IDL - proseduurit IDL - proseduurit 25. huhtikuuta 2017 Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

Lisätiedot

Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta

Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta Simo K. Kivelä, 15.4.2003 Luonnollisten lukujen laskutoimitusten määrittely Peanon aksioomien pohjalta Aksioomat Luonnolliset luvut voidaan määritellä Peanon aksioomien avulla. Tarkastelun kohteena on

Lisätiedot

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin.

Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet suoritetaan peräkkäin. 2. Ohjausrakenteet Ohjausrakenteiden avulla ohjataan ohjelman suoritusta. peräkkäisyys valinta toisto Koottu lause; { ja } -merkkien väliin kirjoitetut lauseet muodostavat lohkon, jonka sisällä lauseet

Lisätiedot

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014

ATK tähtitieteessä. Osa 3 - IDL proseduurit ja rakenteet. 18. syyskuuta 2014 18. syyskuuta 2014 IDL - proseduurit Viimeksi käsiteltiin IDL:n interaktiivista käyttöä, mutta tämä on hyvin kömpelöä monimutkaisempia asioita tehtäessä. IDL:llä on mahdollista tehdä ns. proseduuri-tiedostoja,

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

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä Matti Luukkainen 10.12.2009 Tässä esitetty esimerkki on mukaelma ja lyhennelmä Robert Martinin kirjasta Agile and Iterative Development löytyvästä

Lisätiedot

8. Laadunvalvonta. Mitä laatu on?

8. Laadunvalvonta. Mitä laatu on? 8. Laadunvalvonta Ohjelmistojen laatu on parantunut paljon viimeisen 15 vuoden aikana. Tämä näkyy mm. siinä, että asiakkaat ovat keskimäärin tyytyväisempiä tuotteiden toimintaan kuin 90-luvun alussa. Tähän

Lisätiedot

Sisällys. 12. Monimuotoisuus. Johdanto. Alityypitys. Johdanto. Periytymismekanismi määrittää alityypityksen.

Sisällys. 12. Monimuotoisuus. Johdanto. Alityypitys. Johdanto. Periytymismekanismi määrittää alityypityksen. Sisällys 12. Monimuotoisuus Johdanto. Periytymismekanismi määrittää alityypityksen. Viitteiden sijoitus ja vertailu. Staattinen ja dynaaminen. Parametrinvälitys eräs monimuotoisuuden sovellus.. Rajapinnat

Lisätiedot

1. Olio-ohjelmointi 1.1

1. Olio-ohjelmointi 1.1 1. Olio-ohjelmointi 1.1 Sisällys Olio-ohjelmointi on eräs ohjelmointiparadigma. Olio-ohjelmoinnin muotoja. Ohjelmiston analyysi ja suunnittelu. Olioparadigman etuja ja kritiikkiä. 1.2 Ohjelmointiparadigmoja

Lisätiedot

SPSS-pikaohje. Jukka Jauhiainen OAMK / Tekniikan yksikkö

SPSS-pikaohje. Jukka Jauhiainen OAMK / Tekniikan yksikkö SPSS-pikaohje Jukka Jauhiainen OAMK / Tekniikan yksikkö SPSS on ohjelmisto tilastollisten aineistojen analysointiin. Hyvinvointiteknologian ATK-luokassa on asennettuna SPSS versio 13.. Huom! Ainakin joissakin

Lisätiedot

ITKP102 Ohjelmointi 1 (6 op)

ITKP102 Ohjelmointi 1 (6 op) ITKP102 Ohjelmointi 1 (6 op) Tentaattori: Antti-Jussi Lakanen 7. huhtikuuta 2017 Vastaa kaikkiin tehtäviin. Tee jokainen tehtävä erilliselle konseptiarkille. Kirjoittamasi luokat, funktiot ja aliohjelmat

Lisätiedot

Toimintopisteet. Toimintopisteiden laskenta 1

Toimintopisteet. Toimintopisteiden laskenta 1 Toimintopisteet Toimintopisteiden laskemisen pääidea on tuloksen riippumattomuus toteutusteknologiasta: lasketaan toiminnallisuuden määrä Ei väliä koodataanko C:llä vai Javalla, toiminnallisuus on sama

Lisätiedot

Veto-visualisointityökalu

Veto-visualisointityökalu Ohjelmoinnin suunnittelumallit (design patterns) käyttöliittymissä Vanhin ja keskeisin lähde Gamma E., Helm R., Johnson R., Vlissides J., Design Patterns. Addison-Wesley, USA, 1994. Ajatus ohjelmoinnin

Lisätiedot

IV-kuntotutkimushanke_tutkijat

IV-kuntotutkimushanke_tutkijat IV-kuntotutkimushanke_tutkijat 1. 1. Kuinka käyttökelpoisena pidät SuLVIn IV-kuntotutkimusohjeistusta yleisesti? 1 2 3 4 5 Yhteensä Keskiarvo Asteikko 0 0 0 3 0 3 4 2. 2. Kuinka hyvänä pidät IV-kuntotutkimuksen

Lisätiedot

POHJOIS-POHJANMAAN SAIRAANHOITOPIIRI. Laatutyö - laadukas toiminta terveydenhuollossa

POHJOIS-POHJANMAAN SAIRAANHOITOPIIRI. Laatutyö - laadukas toiminta terveydenhuollossa POHJOIS-POHJANMAAN SAIRAANHOITOPIIRI Laatutyö - laadukas toiminta terveydenhuollossa Mitä on laatu? Laatu on esim. asian, asiantilan, tuotteen, toiminnan ominaisuus, jolla kuvataan sitä, MISSÄ MÄÄRIN arvioinnin

Lisätiedot

Darwin: Tutkimusprojektin esittely

Darwin: Tutkimusprojektin esittely 1 Darwin: Tutkimusprojektin esittely Tutkimusongelma: voidaanko ohjelmistoarkkitehtuuri generoida automaattisesti? Suomen Akatemian rahoittama tutkimusprojekti 2009-2011 TTY & TaY yhteistyö Ks. http://practise.cs.tut.fi/project.php?project=darwin

Lisätiedot

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta OHJ-3010 Ohjelmistotuotannon perusteet Ohjelmistoprojektin hallinta 1 Sisältö Projektiorganisaatio ja sidosryhmät Ohjelmistoprojektin kulku Projektin suunnittelu Ositus Osallistujat Työmäärän arviointi

Lisätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä ja ulkopuolelta. Attribuuttien arvojen käsittely aksessoreilla. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä

Lisätiedot

Yleinen malliprediktiivinen säädin. Funktiolohko Siemens PLC. SoftControl Oy

Yleinen malliprediktiivinen säädin. Funktiolohko Siemens PLC. SoftControl Oy Yleinen malliprediktiivinen säädin Funktiolohko Siemens PLC SoftControl Oy 1.0 Malliprediktiivinen Säädin... 3 1.1 Yleistä...3 1.2 Sovellus...3 1.3 Kuvaus...4 1.4 Muuttujat...5 1.5 Säätimen viritys...6

Lisätiedot

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2

Sisällys. Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 4. Attribuutit 4.1 Sisällys Yleistä attribuuteista. Näkyvyys luokan sisällä. Tiedonkätkentä. Aksessorit. 4.2 Yleistä Luokan lohkossa, mutta metodien ulkopuolella esiteltyjä muuttujia ja vakioita. Esittely

Lisätiedot

Toimialan ja yritysten uudistuminen

Toimialan ja yritysten uudistuminen Toimialan ja yritysten uudistuminen - mahdollisuuksia ja karikoita Jari Kuusisto MIT Sloan School of Management University of Vaasa 1 Jari Kuusisto University of Vaasa Esityksen rakenne Metsäsektorin lähtötilanne

Lisätiedot

Johdatus diskreettiin matematiikkaan Harjoitus 7, 28.10.2015

Johdatus diskreettiin matematiikkaan Harjoitus 7, 28.10.2015 Johdatus diskreettiin matematiikkaan Harjoitus 7, 28.10.2015 1. Onko olemassa yhtenäistä verkkoa, jossa (a) jokaisen kärjen aste on 6, (b) jokaisen kärjen aste on 5, ja paperille piirrettynä sivut eivät

Lisätiedot

TILASTOLLINEN LAADUNVALVONTA

TILASTOLLINEN LAADUNVALVONTA 1 Aki Taanila TILASTOLLINEN LAADUNVALVONTA 31.10.2008 2 TILASTOLLINEN LAADUNVALVONTA Tasalaatuisuus on hyvä tavoite, jota ei yleensä voida täydellisesti saavuttaa: asiakaspalvelun laatu vaihtelee, vaikka

Lisätiedot

- Kommentoi koodisi. Koodin kommentointiin kuuluu kuvata metodien toiminta ja pääohjelmassa tapahtuvat tärkeimmät toiminnat. Esim.

- Kommentoi koodisi. Koodin kommentointiin kuuluu kuvata metodien toiminta ja pääohjelmassa tapahtuvat tärkeimmät toiminnat. Esim. Projektityö olioista. Projektityön ohjeistus: - Jokainen valitsee vain yhden aiheen projektityökseen. Projektityön tarkoitus on opetella tekemään hieman isompi, toimiva ohjelma olioita käyttäen. Ohjelmakoodi

Lisätiedot

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 1 25.-26.1.2017 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka laskee kahden kokonaisluvun välisen jakojäännöksen käyttämättä lainkaan jakolaskuja Jaettava m, jakaja n Vähennetään luku

Lisätiedot

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista

Sisällys. 1. Omat operaatiot. Yleistä operaatioista. Yleistä operaatioista Sisällys 1. Omat operaatiot Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 10.2.2010 T-106.1208 Ohjelmoinnin perusteet Y 10.2.2010 1 / 43 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 11.2.2009 T-106.1208 Ohjelmoinnin perusteet Y 11.2.2009 1 / 33 Kertausta: listat Tyhjä uusi lista luodaan kirjoittamalla esimerkiksi lampotilat = [] (jolloin

Lisätiedot

9. Periytyminen Javassa 9.1

9. Periytyminen Javassa 9.1 9. Periytyminen Javassa 9.1 Sisällys Periytymismekanismi Java-kielessä. Piirteiden näkyvyys periytymisessä. Ilmentymämetodien korvaaminen. Luokkametodien peittäminen. Super-attribuutti. Override-annotaatio.

Lisätiedot

1. Omat operaatiot 1.1

1. Omat operaatiot 1.1 1. Omat operaatiot 1.1 Sisällys Yleistä operaatioista. Mihin operaatioita tarvitaan? Oman operaation määrittely. Yleisesti, nimeäminen ja hyvä ohjelmointitapa, määreet, parametrit ja näkyvyys. HelloWorld-ohjelma

Lisätiedot

Lisää segmenttipuusta

Lisää segmenttipuusta Luku 24 Lisää segmenttipuusta Segmenttipuu on monipuolinen tietorakenne, joka mahdollistaa monenlaisten kyselyiden toteuttamisen tehokkaasti. Tähän mennessä olemme käyttäneet kuitenkin segmenttipuuta melko

Lisätiedot

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen.

Sisällys. 3. Pseudokoodi. Johdanto. Johdanto. Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Sisällys 3. Pseudokoodi Johdanto ja esimerkki. Pseudokoodi lauseina. Kommentointi ja sisentäminen. Ohjausrakenteet: Valinta if- ja if--rakenteilla. oisto while-, do-while- ja for-rakenteilla. 3.1 3.2 Johdanto

Lisätiedot

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op Assembly ja konekieli Tietokoneen ja ohjelmiston rakenne Loogisilla piireillä ja komponenteilla rakennetaan prosessori ja muistit Prosessorin rakenne

Lisätiedot

Ohjelmistokoodin laadulliset metriikat ohjelmistoyrityksessä. Ville-Veikko Kalkkila

Ohjelmistokoodin laadulliset metriikat ohjelmistoyrityksessä. Ville-Veikko Kalkkila Ohjelmistokoodin laadulliset metriikat ohjelmistoyrityksessä Ville-Veikko Kalkkila Tampereen yliopisto Informaatiotieteiden yksikkö Tietojenkäsittelyoppi Pro gradu -tutkielma Ohjaaja: Timo Poranen Toukokuu

Lisätiedot

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset

815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 5 Vastaukset Harjoituksen aiheena ovat aliohjelmat ja abstraktit tietotyypit sekä olio-ohjelmointi. Tehtävät tehdään C-, C++- ja Java-kielillä.

Lisätiedot

OHJ-1151 Ohjelmointi IIe

OHJ-1151 Ohjelmointi IIe Tampereen teknillinen yliopisto Ohjelmistotekniikan laitos OHJ-1151 Ohjelmointi IIe Harjoitustyö Tomaattisota Välipalautus / Loppudokumentaatio Assistentin nimi Välipalautusaika (päivä ja kellonaika) ja

Lisätiedot

Johdantoluento. Ohjelmien ylläpito

Johdantoluento. Ohjelmien ylläpito Johdantoluento Ylläpito-termin termin määrittely Ylläpito ohjelmistotuotannon vaiheena Evoluutio-termin määrittely Muita kurssin aiheeseen liittyviä termejä TTY Ohjelmistotekniikka 1 Ohjelmien ylläpito

Lisätiedot

JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus

JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus JHS 180 Paikkatiedon sisältöpalvelut Liite 4 INSPIRE-palvelujen laadun testaus Versio: 28.2.2013 Julkaistu: 28.2.2013 Voimassaoloaika: toistaiseksi Sisällys 1 Yleiset vaatimukset... 2 2 Latauspalvelun

Lisätiedot

Algoritmit 1. Demot Timo Männikkö

Algoritmit 1. Demot Timo Männikkö Algoritmit 1 Demot 1 31.1.-1.2.2018 Timo Männikkö Tehtävä 1 (a) Algoritmi, joka tutkii onko kokonaisluku tasan jaollinen jollain toisella kokonaisluvulla siten, että ei käytetä lainkaan jakolaskuja Jaettava

Lisätiedot

Verkkokaupan perustaminen - CASE NANSO GROUP OY. Thea Forstén 6.11.2012

Verkkokaupan perustaminen - CASE NANSO GROUP OY. Thea Forstén 6.11.2012 Verkkokaupan perustaminen - CASE NANSO GROUP OY Thea Forstén 6.11.2012 NANSO GROUP LYHYESTI Vuonna 1921 perustettu vaatetusalan perheyhtiö Tunnettuja brändejä ovat Nanso, Finnwear, Black Horse, Vogue,

Lisätiedot

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi Solidity älysopimus ohjelmointi Sopimus suuntautunut ohjelmointi Merkle puu Kertausta eiliseltä Solidity on korkean tason älysopimus ohjelmointikieli Muistuttaa olio-ohjelmointia Javalla Sopimuskoodi on

Lisätiedot

3. Muuttujat ja operaatiot 3.1

3. Muuttujat ja operaatiot 3.1 3. Muuttujat ja operaatiot 3.1 Sisällys Muuttujat. Nimi ja arvo. Algoritmin tila. Muuttujan nimeäminen. Muuttujan tyyppi. Muuttuja ja tietokone. Operaattorit. Operandit. Arvon sijoitus muuttujaan. Aritmeetiikka.

Lisätiedot

Hyvä vesihuoltohanke, suunnittelijan näkökulma

Hyvä vesihuoltohanke, suunnittelijan näkökulma Hyvä vesihuoltohanke, suunnittelijan näkökulma Hannu Pirinen Pohjois-Karjalan aikuisopisto 16.03.2012 Maveplan Oy March 14, 2012 2 PÄÄVAIHEET: Osuuskunnan perustaminen Liittymishalukkuuden selvittäminen

Lisätiedot

MONISTE 2 Kirjoittanut Elina Katainen

MONISTE 2 Kirjoittanut Elina Katainen MONISTE 2 Kirjoittanut Elina Katainen TILASTOLLISTEN MUUTTUJIEN TYYPIT 1 Mitta-asteikot Tilastolliset muuttujat voidaan jakaa kahteen päätyyppiin: kategorisiin ja numeerisiin muuttujiin. Tämän lisäksi

Lisätiedot

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena Ohjelmointikielet ja -paradigmat 5op Markus Norrena Ko#tehtävä 4 Viimeistele "alkeellinen kuvagalleria". Käytännössä kaksi sivua Yksi jolla voi ladata kuvia palvelimelle (file upload) Toinen jolla ladattuja

Lisätiedot

T740103 Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

T740103 Olio-ohjelmointi Osa 5: Periytyminen ja polymorfismi Jukka Jauhiainen OAMK Tekniikan yksikkö 2010 12. Periytyminen Johdantoa Käytännössä vähänkään laajemmissa ohjelmissa joudutaan laatimaan useita luokkia, joiden pitäisi pystyä välittämään tietoa toisilleen. Ohjelmien ylläpidon kannalta olisi lisäksi

Lisätiedot

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä

Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä 582104 Ohjelmistojen mallintaminen luokkamallin lisäpiirteitä 1 Luokkamallin lisäpiirteitä Erilaiset yhteystyypit kooste kompositio Muita luokkien välisiä suhteita riippuvuudet periytyminen eli luokkahierarkia

Lisätiedot

Tutoriaaliläsnäoloista

Tutoriaaliläsnäoloista Tutoriaaliläsnäoloista Tutoriaaliläsnäolokierroksella voi nyt täyttää anomuksen läsnäolon merkitsemisestä Esim. tagi ei toiminut, korvavaltimon leikkaus, yms. Hyväksyn näitä omaa harkintaa käyttäen Tarkoitus

Lisätiedot

Koekysymyksiä. Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistojen suorituskyky

Koekysymyksiä. Ohjelmistoprosessit ja ohjelmistojen laatu Ohjelmistojen suorituskyky Koekysymyksiä Ohjelmistoprosessit ja ohjelmistojen laatu 30.4.2015 58153003 Ohjelmistojen suorituskyky 1 Kurssikokeeseen tulee neljä koetilaisuudessa vastattavaa kysymystä KOKEESSA VASTATTAVAT KYSYMYKSET

Lisätiedot

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti:

Ohjelmassa henkilön etunimi ja sukunimi luetaan kahteen muuttujaan seuraavasti: 1 (7) Tiedon lukeminen näppäimistöltä Scanner-luokan avulla Miten ohjelma saa käyttöönsä käyttäjän kirjoittamaa tekstiä? Järjestelmässä on olemassa ns. syöttöpuskuri näppäimistöä varten. Syöttöpuskuri

Lisätiedot

Tietotyypit ja operaattorit

Tietotyypit ja operaattorit Tietotyypit ja operaattorit Luennossa tarkastellaan yksinkertaisten tietotyyppien int, double ja char muunnoksia tyypistä toiseen sekä esitellään uusia operaatioita. Numeeriset tietotyypit ja muunnos Merkkitieto

Lisätiedot

Tietokannan rakenteen suunnittelu

Tietokannan rakenteen suunnittelu HAAGA-HELIA Heti-09 1 (12) ICT05 Tiedonhallinta ja tietokkanat Tietokannan rakenteen suunnittelu Tietokannan suunnitteluprosessi... 2 Lähtökohdat... 3 Looginen mallintaminen... 4 Muunnos luokkakaaviosta

Lisätiedot

Ohjelmistotuotanto, laadunvalvonta Syksy Laadunvalvonta. Mitä laatu on? Laadun komponentit. Laatuvaatimukset.

Ohjelmistotuotanto, laadunvalvonta Syksy Laadunvalvonta. Mitä laatu on? Laadun komponentit. Laatuvaatimukset. 8. Laadunvalvonta hyvä laatu ei ole itsestäänselvyys: monimutkainen tuote = paljon kohtia jotka voivat mennä vinoon monta osallistujaa = erilainen osaamistaso, erilaiset näkemykset laadusta muutokset =

Lisätiedot

Induktio kaavan pituuden suhteen

Induktio kaavan pituuden suhteen Induktio kaavan pituuden suhteen Lauselogiikan objektikieli määritellään kurssilla Logiikka 1B seuraavasti: 1. Lausemuuttujat p 1, p 2, p 3,... ovat kaavoja. 2. Jos A on kaava, niin A on kaava. 3. Jos

Lisätiedot

Ohjelmoinnin perusteet Y Python

Ohjelmoinnin perusteet Y Python Ohjelmoinnin perusteet Y Python T-106.1208 2.3.2011 T-106.1208 Ohjelmoinnin perusteet Y 2.3.2011 1 / 39 Kertausta: tiedoston avaaminen Kun ohjelma haluaa lukea tai kirjoittaa tekstitiedostoon, on ohjelmalle

Lisätiedot

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset

815338A Ohjelmointikielten periaatteet Harjoitus 4 vastaukset 815338A Ohjelmointikielten periaatteet 2015-2016. Harjoitus 4 vastaukset Harjoituksen aiheena ovat imperatiivisten kielten lauseisiin, lausekkeisiin ja aliohjelmiin liittyvät kysymykset. Tehtävä 1. Mitä

Lisätiedot

Väli- ja loppuraportointi

Väli- ja loppuraportointi Väli- ja loppuraportointi Hyvän raportin merkitys hankkeen tulosten kuvaamisessa Sari Ahvenainen ESR-koordinaattori 25.5.2011 Uudenmaan ELY-keskus Väliraportti (1/8) Miksi väliraportti tehdään? - Tarkoituksena

Lisätiedot

Johdatus tilastotieteeseen Tilastollisten aineistojen kerääminen ja mittaaminen. TKK (c) Ilkka Mellin (2005) 1

Johdatus tilastotieteeseen Tilastollisten aineistojen kerääminen ja mittaaminen. TKK (c) Ilkka Mellin (2005) 1 Johdatus tilastotieteeseen Tilastollisten aineistojen kerääminen ja mittaaminen TKK (c) Ilkka Mellin (2005) 1 ja mittaaminen Tilastollisten aineistojen kerääminen Mittaaminen ja mitta-asteikot TKK (c)

Lisätiedot

Yleiskuvaus - LVpalvelukerroksen. laadulliset vaatimukset Jari Kokko & Vesa Mettovaara LUVAT JA VALVONTA -KÄRKIHANKE

Yleiskuvaus - LVpalvelukerroksen. laadulliset vaatimukset Jari Kokko & Vesa Mettovaara LUVAT JA VALVONTA -KÄRKIHANKE Yleiskuvaus - LVpalvelukerroksen laadulliset vaatimukset 07.11.2018 Jari Kokko & Vesa Mettovaara ICT-ratkaisujen tulee olla asiakkaille toimivia, tarpeellisia ja tuottavia liiketoiminnan jatkuvuuden, kannattavuuden

Lisätiedot

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys)

A) on käytännöllinen ohjelmointitekniikka. = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) 1(37) PERIYTYMINEN (inheritance) YLILUOKKA (superclass) ALILUOKKA (subclass) A) on käytännöllinen ohjelmointitekniikka = laajennetaan aikaisemmin tehtyjä luokkia (uudelleenkäytettävyys) B) on käsitteiden

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