fullrecord |
[{"key": "dc.contributor.advisor", "value": "Mikkonen, Tommi", "language": "", "element": "contributor", "qualifier": "advisor", "schema": "dc"}, {"key": "dc.contributor.author", "value": "Haapasaari, Jari", "language": "", "element": "contributor", "qualifier": "author", "schema": "dc"}, {"key": "dc.date.accessioned", "value": "2023-10-30T07:09:48Z", "language": null, "element": "date", "qualifier": "accessioned", "schema": "dc"}, {"key": "dc.date.available", "value": "2023-10-30T07:09:48Z", "language": null, "element": "date", "qualifier": "available", "schema": "dc"}, {"key": "dc.date.issued", "value": "2023", "language": "", "element": "date", "qualifier": "issued", "schema": "dc"}, {"key": "dc.identifier.uri", "value": "https://jyx.jyu.fi/handle/123456789/91020", "language": null, "element": "identifier", "qualifier": "uri", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Moderni ohjelmistokehitys nojautuu vahvasti ohjelmistojen uudelleenk\u00e4ytt\u00f6\u00f6n. L\u00e4hes jokaisen ohjelmointikielen ekosysteemist\u00e4\nl\u00f6ytyy paketinhallintaohjelmisto, joka helpottaa erilaisten kirjastojen sovittamista\nkehitett\u00e4v\u00e4\u00e4n projektiin. Ohjelmointikehykset ovat niin arkip\u00e4iv\u00e4istyneit\u00e4, ett\u00e4\nkokemattomammat ohjelmistokehitt\u00e4j\u00e4t eiv\u00e4t v\u00e4ltt\u00e4m\u00e4tt\u00e4 tied\u00e4 mit\u00e4 kehys tai\nkirjasto abstrahoi k\u00e4ytt\u00e4j\u00e4lle.\n\nKirjastojen ja kehyksien ekosysteemiss\u00e4 on syntynyt toimintatapa, tai er\u00e4\u00e4nlainen\n\"suunnittelumalli\", jota t\u00e4ss\u00e4 kontekstissa kutsutaan \"opportunistiseksi suunnittelumalliksi\" (eng. Opportunistic Design ). Opportunistille suunnittelumallille\non tyypillist\u00e4, ett\u00e4 ohjelmoijat leikkaavat ja liimaavat ja uudelleenk\u00e4ytt\u00e4v\u00e4t huolettomasti erilaisia kirjastoja, priorisoiden k\u00e4yt\u00e4nn\u00f6llisyytt\u00e4 suunnitelmallisen\nkehitt\u00e4misen sijaan. Tyypillist\u00e4 on my\u00f6s, ett\u00e4 kehitt\u00e4j\u00e4 ei v\u00e4ltt\u00e4m\u00e4tt\u00e4 t\u00e4ysin\nymm\u00e4rr\u00e4 uudelleenk\u00e4ytett\u00e4v\u00e4\u00e4 koodia tai kirjastoa. T\u00e4m\u00e4 avaa mahdollisuuksia tuntemattomille sivuvaikutuksille kehitett\u00e4v\u00e4ss\u00e4 projektissa, ja mahdollisesti\nvaarantaa projektin tietoturvan.\n\nTutkielmassa tutustutaan Go -ohjelmointikielell\u00e4 kehitettyihin avoimen l\u00e4hdekoodin projekteihin, hy\u00f6dynt\u00e4en tilastollisia tutkimusmenetelmi\u00e4, kuten hypoteesitestausta ja pyrit\u00e4\u00e4n selvitt\u00e4m\u00e4\u00e4n onko ekosysteemiss\u00e4 havaittavissa opportunistista k\u00e4yt\u00e4nteit\u00e4. Tutkielmassa pyrit\u00e4\u00e4n laaduttamaan projektit ja etsi\u00e4\nkorrelaatioita suoraan lainatun koodin kokonaism\u00e4\u00e4r\u00e4\u00e4n.\n\nTulokset viittaavat siihen, ett\u00e4 n\u00e4it\u00e4 k\u00e4yt\u00e4nteit\u00e4 ei ole selv\u00e4sti havaittavista tutkitusta ekosysteemist\u00e4. T\u00e4m\u00e4 ei kuitenkaan ole koko totuus, koska ohjelmointikielien ekosysteemit ovat kesken\u00e4\u00e4n erilaisia ja korkeintaan temaattisesti vertailukelpoisia. Jatkotutkimukseksi on esimerkiksi ehdotettu kausatiivisten suhteiden etsimist\u00e4 ohjelmistoprojektien laadun kanssa.", "language": "fi", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.abstract", "value": "Modern software components almost always rely on partly reused\ncode, and modern programming language ecosystems offer tools that make software reuse effortless. Reused software has become such everyday tools that\nthere is a generation of software developers who have solely worked with a software framework, and have little to no understanding whats under the hood.\n\nThe world of third-party libraries and software frameworks has led to a design\npattern called \"Opportunistic Design.\" Typical traits of opportunistic design are\nthat developers copy and paste different code snippets from online and utilize different libraries and frameworks in a carefree manner, prioritizing convenience\nover a systematic and abstraction-driven approach. It is also typical that the developer does not fully understand the reused code, as a result of which unknown\nand unwanted side effects may arise in the developed software.\n\nThe thesis examines open-source projects developed in Go, employing statistical research methods, such as hypothesis testing, in order to study whether\nthere are implications of opportunistic design patterns within the ecosystem.\nThe study is conducted by measuring quality in the form of composite variables\ncollected from the metadata of version-controlled projects, calculating correlations between these variables, and used third-party code.\n\nFindings imply that opportunistic design patterns are not visible within the Go\necosystem. This is, however, not a generalizable result because programming\nlanguage ecosystems are only comparable to a degree. Refine existing composite\nvariables to better represent quality, check whether the relationship with quality is causative, and seek for more variables with causative relationships with\nsoftware project quality was left as a future research topic.", "language": "en", "element": "description", "qualifier": "abstract", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Submitted by Paivi Vuorio (paelvuor@jyu.fi) on 2023-10-30T07:09:48Z\nNo. of bitstreams: 0", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.description.provenance", "value": "Made available in DSpace on 2023-10-30T07:09:48Z (GMT). No. of bitstreams: 0\n Previous issue date: 2023", "language": "en", "element": "description", "qualifier": "provenance", "schema": "dc"}, {"key": "dc.format.extent", "value": "46", "language": "", "element": "format", "qualifier": "extent", "schema": "dc"}, {"key": "dc.language.iso", "value": "eng", "language": null, "element": "language", "qualifier": "iso", "schema": "dc"}, {"key": "dc.rights", "value": "In Copyright", "language": null, "element": "rights", "qualifier": null, "schema": "dc"}, {"key": "dc.subject.other", "value": "opportunistic design", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "software reuse", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "software quality", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.subject.other", "value": "Go", "language": "", "element": "subject", "qualifier": "other", "schema": "dc"}, {"key": "dc.title", "value": "Impact of software reuse on the software quality within Go ecosystem", "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-202310307047", "language": "", "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": "Informaatioteknologian tiedekunta", "language": "fi", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.faculty", "value": "Faculty of Information Technology", "language": "en", "element": "contributor", "qualifier": "faculty", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Informaatioteknologia", "language": "fi", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.department", "value": "Information Technology", "language": "en", "element": "contributor", "qualifier": "department", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "Jyv\u00e4skyl\u00e4n yliopisto", "language": "fi", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.contributor.organization", "value": "University of Jyv\u00e4skyl\u00e4", "language": "en", "element": "contributor", "qualifier": "organization", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Tietotekniikka", "language": "fi", "element": "subject", "qualifier": "discipline", "schema": "dc"}, {"key": "dc.subject.discipline", "value": "Mathematical Information Technology", "language": "en", "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": "", "element": "subject", "qualifier": "oppiainekoodi", "schema": "dc"}, {"key": "dc.subject.yso", "value": "ohjelmistokehitys", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "laatu", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "uudelleenk\u00e4ytt\u00f6", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "software development", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "quality", "language": null, "element": "subject", "qualifier": "yso", "schema": "dc"}, {"key": "dc.subject.yso", "value": "reuse", "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"}]
|