Mittaaminen. Metriikat. Mitta-asteikkoja. Mielekkyys (meaningfulness) Mitta-asteikkojen eroja. Mittaamisen merkitys ohjelmistotuotannossa
|
|
- Elisabet Keskinen
- 7 vuotta sitten
- Katselukertoja:
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 Luennon sisältö Ohjelmistotekniikka ja vaatimukset Ohjelmistotuote Ei-toiminnallisten vaatimusten luokittelu Sisäiset ja ulkoiset vaatimukset Oikeellisuus Luotettavuus Kestävyys
LisätiedotSytyke 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ätiedotTyö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ätiedotLuotettavuuden 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ätiedotRAKENTEEN 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ätiedotLaatukustannukset. 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ätiedot8. 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ätiedotLaadun 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ätiedotLaadun 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ätiedotOhjelmoinnin 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ätiedotarviointi 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ätiedotOHJELMISTOJEN 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ätiedotAlgoritmit 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ätiedotetunimi, 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ätiedotLaadunvarmistuksesta. 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ätiedotOhjelmoinnin 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ätiedot1. 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ätiedotHELIA 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ätiedotOhjelmoinnin 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ätiedotMetriikat 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ätiedotISO/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ätiedotMuistutus 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ätiedotOhjelmoinnin 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ätiedotEhto- 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ätiedotKä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ätiedotTIEP114 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ätiedotOhjelmointiharjoituksia 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ätiedotOhjelmoinnin 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ätiedot4. 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ätiedotOHJELMISTOJEN 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ätiedotOhjelmiston 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ätiedotJava-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ätiedotTyö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ätiedotTyö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ätiedotString-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ätiedotOperaattoreiden 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ätiedotMittaaminen 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ätiedotRajapinta (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ätiedotNumeeriset 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ätiedotIDL - 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ätiedotLuonnollisten 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ätiedotKoottu 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ätiedotATK 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ätiedotTenttikysymykset. + 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ätiedotOliosuunnitteluesimerkki: 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ätiedot8. 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ätiedotSisä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ätiedot1. 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ätiedotSPSS-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ätiedotITKP102 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ätiedotToimintopisteet. 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ätiedotVeto-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ätiedotIV-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ätiedotPOHJOIS-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ätiedotDarwin: 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ätiedotOHJ-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ätiedotSisä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ätiedotYleinen 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ätiedotSisä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ätiedotToimialan 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ätiedotJohdatus 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ätiedotTILASTOLLINEN 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.
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ätiedotAlgoritmit 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ätiedotSisä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ätiedotOhjelmoinnin 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ätiedotOhjelmoinnin 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ätiedot9. 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ätiedot1. 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ätiedotLisää 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ätiedotSisä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ätiedotTIEP114 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ätiedotOhjelmistokoodin 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ätiedot815338A 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ätiedotOHJ-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ätiedotJohdantoluento. 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ätiedotJHS 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ätiedotAlgoritmit 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ätiedotVerkkokaupan 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ätiedotSolidity ä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ätiedot3. 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ätiedotHyvä 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ätiedotMONISTE 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ätiedotOhjelmointikielet 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ätiedotT740103 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ätiedotOhjelmistojen 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ätiedotTutoriaalilä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ätiedotKoekysymyksiä. 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ätiedotOhjelmassa 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ätiedotTietotyypit 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ätiedotTietokannan 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ätiedotOhjelmistotuotanto, 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ätiedotInduktio 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ätiedotOhjelmoinnin 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ätiedot815338A 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ätiedotVä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ätiedotJohdatus 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ätiedotYleiskuvaus - 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ätiedotA) 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ätiedotOleelliset 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