Show simple item record

dc.contributor.advisorMikkonen, Tommi
dc.contributor.authorHaapasaari, Jari
dc.date.accessioned2023-10-30T07:09:48Z
dc.date.available2023-10-30T07:09:48Z
dc.date.issued2023
dc.identifier.urihttps://jyx.jyu.fi/handle/123456789/91020
dc.description.abstractModerni ohjelmistokehitys nojautuu vahvasti ohjelmistojen uudelleenkäyttöön. Lähes jokaisen ohjelmointikielen ekosysteemistä löytyy paketinhallintaohjelmisto, joka helpottaa erilaisten kirjastojen sovittamista kehitettävään projektiin. Ohjelmointikehykset ovat niin arkipäiväistyneitä, että kokemattomammat ohjelmistokehittäjät eivät välttämättä tiedä mitä kehys tai kirjasto abstrahoi käyttäjälle. Kirjastojen ja kehyksien ekosysteemissä on syntynyt toimintatapa, tai eräänlainen "suunnittelumalli", jota tässä kontekstissa kutsutaan "opportunistiseksi suunnittelumalliksi" (eng. Opportunistic Design ). Opportunistille suunnittelumallille on tyypillistä, että ohjelmoijat leikkaavat ja liimaavat ja uudelleenkäyttävät huolettomasti erilaisia kirjastoja, priorisoiden käytännöllisyyttä suunnitelmallisen kehittämisen sijaan. Tyypillistä on myös, että kehittäjä ei välttämättä täysin ymmärrä uudelleenkäytettävää koodia tai kirjastoa. Tämä avaa mahdollisuuksia tuntemattomille sivuvaikutuksille kehitettävässä projektissa, ja mahdollisesti vaarantaa projektin tietoturvan. Tutkielmassa tutustutaan Go -ohjelmointikielellä kehitettyihin avoimen lähdekoodin projekteihin, hyödyntäen tilastollisia tutkimusmenetelmiä, kuten hypoteesitestausta ja pyritään selvittämään onko ekosysteemissä havaittavissa opportunistista käytänteitä. Tutkielmassa pyritään laaduttamaan projektit ja etsiä korrelaatioita suoraan lainatun koodin kokonaismäärään. Tulokset viittaavat siihen, että näitä käytänteitä ei ole selvästi havaittavista tutkitusta ekosysteemistä. Tämä ei kuitenkaan ole koko totuus, koska ohjelmointikielien ekosysteemit ovat keskenään erilaisia ja korkeintaan temaattisesti vertailukelpoisia. Jatkotutkimukseksi on esimerkiksi ehdotettu kausatiivisten suhteiden etsimistä ohjelmistoprojektien laadun kanssa.fi
dc.description.abstractModern software components almost always rely on partly reused code, and modern programming language ecosystems offer tools that make software reuse effortless. Reused software has become such everyday tools that there is a generation of software developers who have solely worked with a software framework, and have little to no understanding whats under the hood. The world of third-party libraries and software frameworks has led to a design pattern called "Opportunistic Design." Typical traits of opportunistic design are that developers copy and paste different code snippets from online and utilize different libraries and frameworks in a carefree manner, prioritizing convenience over 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 and unwanted side effects may arise in the developed software. The thesis examines open-source projects developed in Go, employing statistical research methods, such as hypothesis testing, in order to study whether there are implications of opportunistic design patterns within the ecosystem. The study is conducted by measuring quality in the form of composite variables collected from the metadata of version-controlled projects, calculating correlations between these variables, and used third-party code. Findings imply that opportunistic design patterns are not visible within the Go ecosystem. This is, however, not a generalizable result because programming language ecosystems are only comparable to a degree. Refine existing composite variables to better represent quality, check whether the relationship with quality is causative, and seek for more variables with causative relationships with software project quality was left as a future research topic.en
dc.format.extent46
dc.language.isoen
dc.rightsIn Copyright
dc.subject.otheropportunistic design
dc.subject.othersoftware reuse
dc.subject.othersoftware quality
dc.subject.otherGo
dc.titleImpact of software reuse on the software quality within Go ecosystem
dc.identifier.urnURN:NBN:fi:jyu-202310307047
dc.type.ontasotMaster’s thesisen
dc.type.ontasotPro gradu -tutkielmafi
dc.contributor.tiedekuntaInformaatioteknologian tiedekuntafi
dc.contributor.tiedekuntaFaculty of Information Technologyen
dc.contributor.laitosInformaatioteknologiafi
dc.contributor.laitosInformation Technologyen
dc.contributor.yliopistoJyväskylän yliopistofi
dc.contributor.yliopistoUniversity of Jyväskyläen
dc.contributor.oppiaineTietotekniikkafi
dc.contributor.oppiaineMathematical Information Technologyen
dc.rights.copyright© The Author(s)
dc.rights.accesslevelopenAccess
dc.contributor.oppiainekoodi602
dc.subject.ysoohjelmistokehitys
dc.subject.ysolaatu
dc.subject.ysouudelleenkäyttö
dc.subject.ysosoftware development
dc.subject.ysoquality
dc.subject.ysoreuse
dc.rights.urlhttps://rightsstatements.org/page/InC/1.0/


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record

In Copyright
Except where otherwise noted, this item's license is described as In Copyright