Staattiset koodimetriikat ja niiden yhteys muutoksen määrään TIMissä

Static code metrics are ways to measure software code without executing it. Typically, they are used to evaluate code quality, such as understandability and maintainabiliy, but their applicability to it is somewhat questionable. The topic has been under research for about 50 years without univocal r...

Full description

Bibliographic Details
Main Author: Kauko, Ilari
Other Authors: Faculty of Information Technology, Informaatioteknologian tiedekunta, Information Technology, Informaatioteknologia, University of Jyväskylä, Jyväskylän yliopisto
Format: Master's thesis
Language:fin
Published: 2023
Subjects:
Online Access: https://jyx.jyu.fi/handle/123456789/93070
_version_ 1826225684623654912
author Kauko, Ilari
author2 Faculty of Information Technology Informaatioteknologian tiedekunta Information Technology Informaatioteknologia University of Jyväskylä Jyväskylän yliopisto
author_facet Kauko, Ilari Faculty of Information Technology Informaatioteknologian tiedekunta Information Technology Informaatioteknologia University of Jyväskylä Jyväskylän yliopisto Kauko, Ilari Faculty of Information Technology Informaatioteknologian tiedekunta Information Technology Informaatioteknologia University of Jyväskylä Jyväskylän yliopisto
author_sort Kauko, Ilari
datasource_str_mv jyx
description Static code metrics are ways to measure software code without executing it. Typically, they are used to evaluate code quality, such as understandability and maintainabiliy, but their applicability to it is somewhat questionable. The topic has been under research for about 50 years without univocal results. Software industry uses them quite steadily to validate code, but academic research about them has given rather contradictory results. The source code of TIM, an educational web application developed in the University of Jyväskylä, was researched by the available metric tools and it turned out that their relation to the amount of Git commits in the Git log was remarkable. However, the metrics the research emphasized were somewhat different from what previous research has emphasized, which may tell about the programming paradigm used in TIM. Staattiset koodimetriikat ovat tapoja mitata ohjelmakoodia suorittamatta sitä. Yleensä niitä käytetään arvioimaan ohjelmakoodin laatua, kuten ymmärrettävyyttä ja ylläpidettävyyttä, mutta niiden soveltuvuus siihen on melko kyseenalaista. Aihetta on tutkittu noin 50 vuotta ilman yksiselitteisiä tuloksia. Ohjelmistoteollisuus käyttää niitä melko vakituisesti koodin validointiin, mutta akateeminen tutkimus niistä on antanut melko ristiriitaisia tuloksia. Jyväskylän yliopistossa koulutuskäytön web-sovellukseksi kehitetyn TIMin lähdekoodia tutkittiin saatavilla olevilla staattisten koodimetriikoiden mittaustyökaluilla ja paljastui, että useat metriikat ovat merkittävästi yhteydessä koodia muuttaneiden Git-commitien määrään. Toisaalta tämän tutkielman aineiston analyysissä korostuivat jonkin verran eri metriikat kuin aiemmassa tutkimuskirjallisuudessa, mikä voi kertoa TIMin taustalla olevasta ohjelmointiparadigmasta.
first_indexed 2024-01-26T21:01:31Z
format Pro gradu
free_online_boolean 1
fullrecord [{"key": "dc.contributor.advisor", "value": "Mikkonen, Tommi", "language": null, "element": "contributor", "qualifier": "advisor", "schema": "dc"}, {"key": "dc.contributor.author", "value": "Kauko, Ilari", "language": "", "element": "contributor", "qualifier": "author", "schema": "dc"}, {"key": "dc.date.accessioned", "value": "2024-01-26T06:35:07Z", "language": null, "element": "date", "qualifier": "accessioned", "schema": "dc"}, {"key": "dc.date.available", "value": "2024-01-26T06:35:07Z", "language": null, "element": "date", "qualifier": "available", "schema": "dc"}, {"key": "dc.date.issued", "value": "2023", "language": null, "element": "date", "qualifier": "issued", "schema": "dc"}, {"key": "dc.identifier.uri", "value": "https://jyx.jyu.fi/handle/123456789/93070", "language": null, "element": "identifier", "qualifier": "uri", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Static code metrics are ways to measure software code without executing it. Typically, they are used to evaluate code quality, such as understandability and maintainabiliy, but their applicability to it is somewhat questionable. The topic has been under research for about 50 years without univocal results. Software industry uses them quite steadily to validate code, but academic research about them has given rather contradictory results. The source code of TIM, an educational web application developed in the University of Jyv\u00e4skyl\u00e4, was researched by the available metric tools and it turned out that their relation to the amount of Git commits in the Git log was remarkable. However, the metrics the research emphasized were somewhat different from what previous research has emphasized, which may tell about the programming paradigm used in TIM.", "language": "en", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Staattiset koodimetriikat ovat tapoja mitata ohjelmakoodia suorittamatta sit\u00e4. Yleens\u00e4 niit\u00e4 k\u00e4ytet\u00e4\u00e4n arvioimaan ohjelmakoodin laatua, kuten ymm\u00e4rrett\u00e4vyytt\u00e4 ja yll\u00e4pidett\u00e4vyytt\u00e4, mutta niiden soveltuvuus siihen on melko kyseenalaista. Aihetta on tutkittu noin 50 vuotta ilman yksiselitteisi\u00e4 tuloksia. Ohjelmistoteollisuus k\u00e4ytt\u00e4\u00e4 niit\u00e4 melko vakituisesti koodin validointiin, mutta akateeminen tutkimus niist\u00e4 on antanut melko ristiriitaisia tuloksia. Jyv\u00e4skyl\u00e4n yliopistossa koulutusk\u00e4yt\u00f6n web-sovellukseksi kehitetyn TIMin l\u00e4hdekoodia tutkittiin saatavilla olevilla staattisten koodimetriikoiden mittausty\u00f6kaluilla ja paljastui, ett\u00e4 useat metriikat ovat merkitt\u00e4v\u00e4sti yhteydess\u00e4 koodia muuttaneiden Git-commitien m\u00e4\u00e4r\u00e4\u00e4n. Toisaalta t\u00e4m\u00e4n tutkielman aineiston analyysiss\u00e4 korostuivat jonkin verran eri metriikat kuin aiemmassa tutkimuskirjallisuudessa, mik\u00e4 voi kertoa TIMin taustalla olevasta ohjelmointiparadigmasta.", "language": "fi", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted by Paivi Vuorio (paelvuor@jyu.fi) on 2024-01-26T06:35:07Z\nNo. of bitstreams: 0", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Made available in DSpace on 2024-01-26T06:35:07Z (GMT). No. of bitstreams: 0\n Previous issue date: 2023", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.format.extent", "value": "78", "language": "", "element": "format", "qualifier": "extent", "schema": "dc"}, {"key": "dc.language.iso", "value": "fin", "language": null, "element": "language", "qualifier": "iso", "schema": "dc"}, {"key": "dc.rights", "value": "In Copyright", "language": "en", "element": "rights", "qualifier": null, "schema": "dc"}, {"key": "dc.subject.other", "value": "ohjelmisto", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "TIM", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "staattinen koodimetriikka", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "staattiset koodimetriikat", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "Git", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "Flask", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "SonarQube", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "PyPI", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "McCabe-kompleksisuus", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "kognitiviinen kompleksisuus", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "ohjelmistotiede", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "Halsteadin metriikat", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "metodien koheesion puute", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "LCOM", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "fan-out", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "ohjelmiston laatu", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "yll\u00e4pidett\u00e4vyys", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.title", "value": "Staattiset koodimetriikat ja niiden yhteys muutoksen m\u00e4\u00e4r\u00e4\u00e4n TIMiss\u00e4", "language": "", "element": "title", "qualifier": null, "schema": "dc"}, {"key": "dc.type", "value": "master thesis", "language": null, "element": "type", "qualifier": null, "schema": "dc"}, {"key": "dc.identifier.urn", "value": "URN:NBN:fi:jyu-202401261558", "language": null, "element": "identifier", "qualifier": "urn", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Master\u2019s thesis", "language": "en", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.type.ontasot", "value": "Pro gradu -tutkielma", "language": "fi", "element": "type", "qualifier": "ontasot", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Faculty of Information Technology", "language": "en", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Informaatioteknologian tiedekunta", "language": "fi", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Information Technology", "language": "en", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Informaatioteknologia", "language": "fi", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "University of Jyv\u00e4skyl\u00e4", "language": "en", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "Jyv\u00e4skyl\u00e4n yliopisto", "language": "fi", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Mathematical Information Technology", "language": "en", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Tietotekniikka", "language": "fi", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "yvv.contractresearch.funding", "value": "0", "language": "", "element": "contractresearch", "qualifier": "funding", "schema": "yvv"}, {"key": "dc.type.coar", "value": "http://purl.org/coar/resource_type/c_bdcc", "language": null, "element": "type", "qualifier": "coar", "schema": "dc"}, {"key": "dc.rights.copyright", "value": "\u00a9 The Author(s)", "language": null, "element": "rights", "qualifier": "copyright", "schema": "dc"}, {"key": "dc.rights.accesslevel", "value": "openAccess", "language": null, "element": "rights", "qualifier": "accesslevel", "schema": "dc"}, {"key": "dc.type.publication", "value": "masterThesis", "language": null, "element": "type", "qualifier": "publication", "schema": "dc"}, {"key": "dc.subject.oppiainekoodi", "value": "602", "language": null, "element": "subject", "qualifier": "oppiainekoodi", "schema": "dc"}, {"key": "dc.subject.yso", "value": "tietokoneohjelmat", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "ymm\u00e4rrett\u00e4vyys", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "Python", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "ohjelmistoteollisuus", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.rights.url", "value": "https://rightsstatements.org/page/InC/1.0/", "language": null, "element": "rights", "qualifier": "url", "schema": "dc"}]
id jyx.123456789_93070
language fin
last_indexed 2025-02-18T10:55:19Z
main_date 2023-01-01T00:00:00Z
main_date_str 2023
online_boolean 1
online_urls_str_mv {"url":"https:\/\/jyx.jyu.fi\/bitstreams\/4a4e87c7-424b-4400-be73-b76dc9e99a71\/download","text":"URN:NBN:fi:jyu-202401261558.pdf","source":"jyx","mediaType":"application\/pdf"}
publishDate 2023
record_format qdc
source_str_mv jyx
spellingShingle Kauko, Ilari Staattiset koodimetriikat ja niiden yhteys muutoksen määrään TIMissä ohjelmisto TIM staattinen koodimetriikka staattiset koodimetriikat Git Flask SonarQube PyPI McCabe-kompleksisuus kognitiviinen kompleksisuus ohjelmistotiede Halsteadin metriikat metodien koheesion puute LCOM fan-out ohjelmiston laatu ylläpidettävyys Mathematical Information Technology Tietotekniikka 602 tietokoneohjelmat ymmärrettävyys Python ohjelmistoteollisuus
title Staattiset koodimetriikat ja niiden yhteys muutoksen määrään TIMissä
title_full Staattiset koodimetriikat ja niiden yhteys muutoksen määrään TIMissä
title_fullStr Staattiset koodimetriikat ja niiden yhteys muutoksen määrään TIMissä Staattiset koodimetriikat ja niiden yhteys muutoksen määrään TIMissä
title_full_unstemmed Staattiset koodimetriikat ja niiden yhteys muutoksen määrään TIMissä Staattiset koodimetriikat ja niiden yhteys muutoksen määrään TIMissä
title_short Staattiset koodimetriikat ja niiden yhteys muutoksen määrään TIMissä
title_sort staattiset koodimetriikat ja niiden yhteys muutoksen määrään timissä
title_txtP Staattiset koodimetriikat ja niiden yhteys muutoksen määrään TIMissä
topic ohjelmisto TIM staattinen koodimetriikka staattiset koodimetriikat Git Flask SonarQube PyPI McCabe-kompleksisuus kognitiviinen kompleksisuus ohjelmistotiede Halsteadin metriikat metodien koheesion puute LCOM fan-out ohjelmiston laatu ylläpidettävyys Mathematical Information Technology Tietotekniikka 602 tietokoneohjelmat ymmärrettävyys Python ohjelmistoteollisuus
topic_facet 602 Flask Git Halsteadin metriikat LCOM Mathematical Information Technology McCabe-kompleksisuus PyPI Python SonarQube TIM Tietotekniikka fan-out kognitiviinen kompleksisuus metodien koheesion puute ohjelmisto ohjelmiston laatu ohjelmistoteollisuus ohjelmistotiede staattinen koodimetriikka staattiset koodimetriikat tietokoneohjelmat ylläpidettävyys ymmärrettävyys
url https://jyx.jyu.fi/handle/123456789/93070 http://www.urn.fi/URN:NBN:fi:jyu-202401261558
work_keys_str_mv AT kaukoilari staattisetkoodimetriikatjaniidenyhteysmuutoksenmäärääntimissä