Impact of software reuse on the software quality within Go ecosystem
Tekijät
Päivämäärä
2023Tekijänoikeudet
© The Author(s)
Moderni 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.
...
Modern 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.
...
Asiasanat
Metadata
Näytä kaikki kuvailutiedotKokoelmat
- Pro gradu -tutkielmat [29743]
Lisenssi
Samankaltainen aineisto
Näytetään aineistoja, joilla on samankaltainen nimeke tai asiasanat.
-
Social construction of quality in software development
Kaukonen, Sylvia (2011) -
Omission of Quality Software Development Practices : A Systematic Literature Review
Ghanbari, Hadi; Vartiainen, Tero; Siponen, Mikko (Association for Computing Machinery (ACM), 2018)Software deficiencies are minimized by utilizing recommended software development and quality assurance practices. However, these recommended practices (i.e., quality practices) become ineffective if software professionals ... -
Designing, Developing, and Implementing Software Ecosystems: Towards a Step-wise Guide
Manikas, Konstantinos; Hämäläinen, Mervi; Tyrväinen, Pasi (Editors; Sun SITE Central Europe, 2016)The notion of software ecosystems has been popular both in research and industry for more than a decade, but how software ecosystems are created still remains unclear. This becomes more of a challenge if one examines ... -
Secure software design and development : towards practical models for implementing information security into the requirements engineering process
Väyrynen, Aino-Maria; Räisänen, Elina (2020)Vaatimusmäärittelyprosessin tavoitteena on kerätä ja jalostaa ratkaisuiksi tuotteen tai palvelun sidosryhmiksi tunnistettujen osapuolten ajatuksia ja tarpeita. Näiden ratkaisujen avulla poistetaan asiakkaan liiketoiminnassa ... -
Improving component reuse in software development
Forsell, Marko (Jyväskylän yliopisto, 2002)This study concerns reuse in the software development process. The focus is in the reuse of components when creating new software. The aim is to improve current software processes to adapt them to the purposes of reuse. ...
Ellei toisin mainittu, julkisesti saatavilla olevia JYX-metatietoja (poislukien tiivistelmät) saa vapaasti uudelleenkäyttää CC0-lisenssillä.