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

Samankaltaiset tiedostot
RAKENTEEN ELI SUUNNITTELUN MITTAREITA

Toimintopisteet. Toimintopisteiden laskenta 1

Ohjelmistokoodin laadulliset metriikat ohjelmistoyrityksessä. Ville-Veikko Kalkkila

1. Olio-ohjelmointi 1.1

Ohjelmistometriikat arkkitehtuuritasolla

Tenttikysymykset. + UML-kaavioiden mallintamistehtävät

Sokkelon sisältö säilötään linkitetyille listalle ja tekstitiedostoon. Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

- mittaamisesta - toimintopistemetriikka - oliosunnittelun metriikat (QMOOD)

Oliosuunnitteluesimerkki: Yrityksen palkanlaskentajärjestelmä

1 Tehtävän kuvaus ja analysointi

SEPA REFAKTOROINTI Antti Ahvenlampi, 57408L Erik Hakala, 57509T

Ohjelmoinnin jatkokurssi, kurssikoe

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät 2015

Työ tehdään itsenäisesti yhden hengen ryhmissä. Ideoita voi vaihtaa koodia ei.

815338A Ohjelmointikielten periaatteet Harjoitus 5 Vastaukset

Olio-ohjelmointi: Luokkien toteuttaminen. Jukka Juslin

Sisällys. JAVA-OHJELMOINTI Osa 7: Abstrakti luokka ja rajapinta. Abstraktin luokan idea. Abstrakti luokka ja metodi. Esimerkki

Test-Driven Development

Ohjelmoinnin perusteet Y Python

Tenttikysymykset. + UML- kaavioiden mallintamistehtävät

Test-Driven Development

Ohjelmistotekniikka - Luento 5

Muutamia peruskäsitteitä

Vesisika. metsiemme työmyyrä.

Staattisen analyysin ja mittareiden käyttö refaktoroinnin vaikutuksien analysoinnissa ohjelmistojen sisäisen laadun perspektiivistä

OHJ-3100 Ohjelmien ylläpito ja evoluutio. Harjoitustyö. Ohjaaja: Outi Sievi-Korte TE213 Päivystys ti klo 14-16

Ohjelmistojen suunnittelu

Kaikkiin kysymyksiin vastataan kysymys paperille pyri pitämään vastaukset lyhyinä, voit jatkaa paperien kääntöpuolille tarvittaessa.

Tarjolla tänää: Ohjelmiston toteutuksesta. Kuinka tulla hyväksi ohjelmoijaksi? CRC-kortit. Testilähtöinen kehittäminen JOT2007. Uudelleenrakentaminen

Luokat ja oliot. Ville Sundberg

T Olio-ohjelmointi Osa 3: Luokka, muodostin ja hajotin, this-osoitin Jukka Jauhiainen OAMK Tekniikan yksikkö 2010

TAMPEREEN TEKNILLINEN YLIOPISTO Digitaali- ja tietokonetekniikan laitos. Harjoitustyö 4: Cache, osa 2

Opintojakso TT00AA11 Ohjelmoinnin jatko (Java): 3 op

Kerta 2. Kerta 2 Kerta 3 Kerta 4 Kerta Toteuta Pythonilla seuraava ohjelma:

Ohjelmoinnin perusteet Y Python

Tämän lisäksi listataan ranskalaisin viivoin järjestelmän tarjoama toiminnallisuus:

812336A C++ -kielen perusteet,

Eclipse ja JUnit-ohjelmoijatestit

Ohjelmoinnin peruskurssien laaja oppimäärä

Uudelleenkäytön jako kahteen

Tutki ja kirjoita -kurssi, s-2005

Esimerkkiprojekti. Mallivastauksen löydät Wroxin www-sivuilta. Kenttä Tyyppi Max.pituus Rajoitukset/Kommentit

Javan perusteita. Janne Käki

Rajapinta (interface)

UML Luokkakaavio 14:41

Sisällys. Mitä on periytyminen? Yksittäis- ja moniperiytyminen. Oliot ja perityt luokat. Periytymisen käyttö. 8.2

TT00AA Ohjelmoinnin jatko (TT10S1ECD)

Yhtälöryhmä matriisimuodossa. MS-A0007 Matriisilaskenta. Tarkastellaan esimerkkinä lineaarista yhtälöparia. 2x1 x 2 = 1 x 1 + x 2 = 5.

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. IX Suunnittelumallit Proxy, Factory Method, Prototype ja Singleton

Ohjelmointi 2 / 2010 Välikoe / 26.3

Aineistoista. Laadulliset menetelmät: miksi tarpeen? Haastattelut, fokusryhmät, havainnointi, historiantutkimus, miksei videointikin

Mitä on periytyminen?

JReleaser Yksikkötestaus ja JUnit. Mikko Mäkelä

UML:n yleiskatsaus. UML:n osat:

Rakennusautomaation käytettävyys. Rakennusautomaatioseminaari Sami Karjalainen, VTT

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

Sisällys. JAVA-OHJELMOINTI Osa 6: Periytyminen ja näkyvyys. Luokkahierarkia. Periytyminen (inheritance)

Käyttöoppaasi. TEXAS INSTRUMENTS TI-NSPIRE

Taulukot. Jukka Harju, Jukka Juslin

Ohjelmoinnin peruskurssi Y1

Objective-C. Ryhmä 35: Ilpo Kärki Aleksi Pälä

9. Periytyminen Javassa 9.1

OHJ-3010 Ohjelmistotuotannon perusteet. Ohjelmistoprojektin hallinta

Pong-peli, vaihe Aliohjelman tekeminen. Muilla kielillä: English Suomi. Tämä on Pong-pelin tutoriaalin osa 3/7. Tämän vaiheen aikana

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

Ohjelmoinnin perusteet Y Python

Pythonin alkeet Syksy 2010 Pythonin perusteet: Ohjelmointi, skriptaus ja Python

Solidity älysopimus ohjelmointi. Sopimus suuntautunut ohjelmointi

2. Olio-ohjelmoinista lyhyesti 2.1

812347A Olio-ohjelmointi, 2015 syksy 2. vsk. VII Suunnittelumallit Adapter ja Composite

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

Olion elinikä. Olion luominen. Olion tuhoutuminen. Olion tuhoutuminen. Kissa rontti = null; rontti = new Kissa();

f(x, y) = x 2 y 2 f(0, t) = t 2 < 0 < t 2 = f(t, 0) kaikilla t 0.

Yleisiä kommentteja kokeesta.

Mittaaminen projektipäällikön ja prosessinkehittäjän työkaluna

Ohjelmoinnin perusteet Y Python

Ohjelmistojen mallintaminen Olioiden yhteistyö Harri Laine 1

Työkalujen merkitys mittaamisessa

OHJ-7600 Ihminen ja tekniikka -seminaari, 4 op Käyttäjäkokemuksen kvantitatiivinen analyysi. Luento 3

Visma Business AddOn Tositteiden tuonti. Käsikirja

Rajapinnasta ei voida muodostaa olioita. Voidaan käyttää tunnuksen tyyppinä. Rajapinta on kuitenkin abstraktia luokkaa selvästi abstraktimpi tyyppi.

Ohjelmointikielet ja -paradigmat 5op. Markus Norrena

811312A Tietorakenteet ja algoritmit V Verkkojen algoritmeja Osa 2 : Kruskalin ja Dijkstran algoritmit

Ohjelmointi 1 C#, kevät 2013, 2. tentti

PHP tehtävä 3 Atte Pekarinen TIKT13A

Maastotietokannan torrent-jakelun shapefile-tiedostojen purkaminen zip-arkistoista Windows-komentojonoilla

Harjoitus 5 (viikko 48)

Kertaus: yleistys-erikoistus ja perintä

Ohjelmoinnin peruskurssien laaja oppimäärä

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

TASAVIRTAPIIRI - VASTAUSLOMAKE

TIE Ohjelmistojen suunnittelu

JAVA-PERUSTEET. JAVA-OHJELMOINTI 3op A JAVAN PERUSTEET LYHYT KERTAUS JAVAN OMINAISUUKSISTA JAVAN OMINAISUUKSIA. Java vs. C++?

Ohjelmien automaattisen verifioinnin reunamailla

Sisällys. 11. Rajapinnat. Johdanto. Johdanto

Aineistokoko ja voima-analyysi

Ohjelmoinnin perusteet Y Python

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

Ohjelmistoprosessit ja ohjelmistojen laatu Kevät Ohjelmistoprosessit ja ohjelmistojen laatu. Projektinhallinnan laadunvarmistus

Transkriptio:

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", mit" metriikoilla mitataan ja miten se niiden arvoissa ilmenee. Ei saa ensin mitata ja sitten arvella!

Metriikoiden k"ytt! laadun arviointiin #IEEE Std 1061$ Selvit" laadulliset vaatimukset ohjelmistolle Valitse soveltuvat metriikat Toteuta metriikoiden ker"ys Analysoi saadut tulokset Validoi tulokset Laadulliset vaatimukset Mieti esimerkkejä laadullisista vaatimuksista. Laadulliset vaatimukset tulee pysty" esitt"m""n joko suorina metriikoiden arvoina tai ennustuksina kelvollisista arvoista. Suorat metriikat ovat kelvollisia kehityksen jokaisessa vaiheessa, ennustavat my!s, mutta lopullinen arvo saadaan vasta kohteen valmistuttua.

Laadulliset vaatimukset Tunnistetaan ensin mahdolliset vaatimukset. Asianosaisten kesken valitaan n"ist" halutut vaatimukset ja niiden merkitsevyys. N"ist" tehd""n lista. Ristiriidat vaatimusten v"lill" selvitet""n. Jokainen vaatimus kvanti%oidaan, eli jokaiselle niist" valitaan edustava metriikka raja& arvoineen. Laadulliset vaatimukset Mieti esimerkkejä metriikoista, joilla mittaisit laadullisten vaatimusten täyttymistä. Kunkin esimerkin kohdalla pohdi, onko se suora metriikka vai ennustava metriikka.

Metriikoiden valinta Valitaan soveltuva metriikkakehys. #kts IEEE Std 1061$ Arvioidaan kustannukset ja hy!dyt metriikoiden k"yt!st"; koulutus, ty!kalut, sitouttaminen, ja muutokset ty!skentelytapoihin. Sovitetaan metriikkakehys ja sitoutetaan asianosaiset siihen. Metriikoiden ker"ys M""rittele metriikkadatan ker"ykseen k"ytett"v" prosessi. Harjoittele ja testaa prosessia, ja heijasta t"m"n tulokset prosessiin. Suorita metriikkadatan ker"ys.

Tulosten analysointi Tulkitaan ja tallennetaan tulokset sek" projektin kontekstissa, ett" yksitt"isen projektin vaiheen, tai tuotteen, n"k!kulmasta. Tunnistetaan ohjelmiston laatu. Metriikan arvon vahvat poikkeamat analysoidaan komponenteittain. Muokataan ohjelmistoa tarvittaessa. Tulosten analysointi Ennustetaan lopulliset arvot ja seurataan niiden kehittymist". Varmistetaan laatuvaatimusten t"yttyminen.

Tulosten validointi Ennustavien metriikoiden validointi. Historiadatan k"ytt! Tilastolliset menetelm"t Kehitysalustan muuttumattomuus Ohjelman kompleksisuus Monimutkainen ohjelma on hankala kehitt"" ja yll"pit"". Ohjelmat muuttuvat helposti kehityksen aikana monimutkaisemmiksi, ellei t"t" muuttumista vastaan tietoisesti taistella. M. M. Lehman

Metriikoita ' lyhenteiden paratiisi LOC, SLOC ' Lines of Code, Source Lines of Code McCaben syklomaattinen kompleksisuus FPA ' Function Point Analysis L"hdekoodirivien m""r" Joko kaikkien rivien, tai muiden kuin kommenttirivien, lukum""r" l"hdekoodissa. Helppo laskea, mahdoton tulkita. Paljon k"ytetty, yleens" v""rink"ytetty. Hy!dyllinen l"hinn" kehitt"j"n omiin suorituskykymittauksiin.

Syklomaattinen kompleksisuus Ohjelmavuossa ehtolauseiden kohdalla tapahtuvien haarautumisten lukum""r". Kuten LOC. Lukum""r"n arviointi (Varmasti osaat tehd" tuon toteutuksen v"hemm"ll" koodirivim""r"ll"!) (Saat palkkaa xxxx* koodirivilt".) tai (Mit" enemm"n rivej" kirjoitat, sit" tuotteliaampi olet.)

Toimintopisteanalyysi Arvioidaan painotettu summa toimintopisteiden lukum""r"lle. Projektin luonteeseen sovittamalla saaduilla kertoimilla lis"ttyn" saadaan metriikalle arvo. K"ytetty, ylistetty, oman kansainv"lisen k"ytt"j"kerhon #IFPUG$ kannattama metriikka / analyysimenetelm". V"itet""n saadun valideja tuloksia. Varoitus! IFPUG:in sivuilta tai softwaremetrics.com& sivuilta saa oppaan toimintopisteanalyysin tekemiseen. Samoilla sivuilla on ketteri" menetelmi" haukkuva kirjoitus #)The agile method and other fairly tales...)$, jonka kirjoittajalla ei ole mit!!n k"sityst" ketterist" menetelmist". +lk"" uskoko sit" kritiikitt".

Lis"" metriikoita Funktioiden tai proseduurien lukum""r", globaalien muuttujien lukum""r", lokaalien muuttujien lukum""r", parametrien lukum""r", virheiden lukum""r",... Johdannaisia: rivej" / ty!p"iv", virheit" / rivi, virheit" / funktio, rivej" / funktio, virheit" / funktio t"ydenkuun aikaan Keksi itse lis""... Riippuvuusmetriikoita Funktion k"ytt"mien funktioiden m""r". Funktiota k"ytt"vien funktioiden m""r". Yleistyv"t proseduureille, metodeille, olioille, luokille,... Rajoitetaanko mittaus v"litt!miin k"ytettyihin tai k"ytt"viin funktioihin vai kaikkiin?

Oliometriikoita Chidamber & Kemerer 1994 Paljon parjattu ja k"ytetty metriikkakokoelma. Brian Henderson&Sellers: Object&oriented Metrics Chidamber & Kemerer WMC ' painotettu metodien lukum""r" DIT ' perint"puun syvyys NOC ' lapsiluokkien lukum""r" RFC ' luokan vastausm""r" CBO ' kytkeytyneisyys olioluokkien v"lill" LCOM ' koheesion puute luokan metodeissa

WMC Weighted Method Count #luokan$ metodien lukum""r" kerrottuna painolla 1 #yksi$, tai McCabe,in syklomaattinen kompleksisuus metodille, tai joku muu. DIT & NOC Depth of inheritance tree Luokkien lukum""r" perint"hierarkiassa kohdeluokasta juuriluokkaan. Moniperiytymist" ei huomioida. Number of Children Kohdeluokan v"litt!mien lapsiluokkien lukum""r".

RFC Response for a class Luokan metodien kutsumisen aiheuttaman mahdollisten v"litt!mien metodikutsujen lukum""r". CBO Coupling between object classes Kohdeluokan k"ytt"mien ja kohdeluokkaa k"ytt"vien luokkien lukum""r". Jos kohdeluokan olio k"ytt"" toisen luokan olion metodeita tai attribuutteja, sanotaan n"iden olioiden luokkien olevan kytkeytyneit" toisiinsa.

LCOM Lack of Cohesion in Methods M""ritelm" turhan vaikea t"ss" selitt"" :&$! Lue artikkeleista. Idea: kuinka paljon l!ytyy sellaisia metodipareja, jotka eiv"t k"yt" samoja attribuutteja. Kritisoiduin, sill" mm. ei huomioi attribuuttien saantimetodien k"ytt!". Lis""... Abstraktien metodien lukum""r", abstraktien luokkien lukum""r", rajapintojen lukum""r", attribuuttien lukum""r", perittyjen piirteiden lukum""r", perittyjen piirteiden lukum""r", LCOM-1,2,3,...,... Li & Henry, Lorenz & Kidd,...

Martinin pakettimetriikat http://en.wikipedia.org/wiki/ Software_package_metrics Muut metriikat Prosessin etenemisen arviointi Ty!m""r"n arviointi Laitonta joissain maissa #ja j"rjet!nt" yleisesti$ Ty!ntekij!iden arviointi Laitonta joissain maissa #ja j"rjet!nt" yleisesti$

Itsearviointi Metriikat ovat hyvi" k"ytt"" tekij"n itse tekem""n itsens" arviointiin, oman kehittymisen seurantaan J"rki k"teen t"ss"kin Katso: Personal Software Process Ty!kalut Metriikan mittaukseen Millä hakusanoilla käyttäisit WWWhakupalvelua löytääksesi metriikkatyökaluja?

Tulosten kuvantaminen Tulokset on selitett"v" sanallisesti, mutta tukena voi k"ytt"" kuvantamista. Ihmiset tulkitsevat helpommin visualisoitua informaatiota, mutta my!s helpommin v""rin. Millä hakusanoilla käyttäisit WWWhakupalvelua löytääksesi kuvantamistyökaluja?