dc.contributor.advisor | Lappalainen, Vesa | |
dc.contributor.advisor | Lakanen, Antti-Jussi | |
dc.contributor.advisor | Itkonen, Jonne | |
dc.contributor.author | Tarvainen, Seppo | |
dc.date.accessioned | 2018-05-25T11:28:47Z | |
dc.date.available | 2018-05-25T11:28:47Z | |
dc.date.issued | 2018 | |
dc.identifier.uri | https://jyx.jyu.fi/handle/123456789/58128 | |
dc.description.abstract | JavaScript-sovelluskehysten käyttö helpottaa asiakaspuolen sovelluskehitystä ja parantaa sovelluksen ylläpidettävyyttä. Oikean työkalun valitseminen on ohjelmoijalle kuitenkin haastava tehtävä teknologioiden nopean kehittymisen vuoksi. Suunnittelutieteellisen tutkimuksen avulla selvitettiin suosittujen sovelluskehysten (AngularJS, Angular 5 ja React) eri ominaisuuksien, kuten staattisen tyypityksen, riippuvuusinjektion ja tarkkailijamallin käytön sekä komponentteihin osituksen vaikutusta kahteen ylläpidettävyyden attribuuttiin: stabiilisuuteen ja muokattavuuteen. Tutkielmassa toteutettiin valituilla sovelluskehyksillä työajanseurantasovellukset, joita kehitettiin edelleen kuudessa versiopäivityksessä. Tämän jälkeen SonarCloud-palvelussa selvitettiin sovellusten rivimäärä sekä syklomaattinen ja kognitiivinen kompleksisuus. Mittaustulosten kautta tutkittiin valittujen ominaisuuksien vaikutusta ylläpidettävyyden attribuutteihin muutosvaikutusanalyysin avulla. React-sovelluksissa käytetty tapa osittaa ohjelma komponentteihin kasvatti merkittävästi sovellusten rivimäärää, mutta ei niiden kompleksisuusarvoja. Tulokset osoittivat myös, että tarkkailijamallin käyttö vaikutti heikentävän ylläpidettävyyttä, kun taas staattisella tyypityksellä tai riippuvuusinjektion käytöllä ei havaittu olevan siihen merkittävää vaikutusta. | fi |
dc.description.abstract | The use of JavaScript frameworks makes the clientside web application development process easier and improves software maintainability. However, choosing the right framework for the task at hand is challenging for the programmer due to the rapid evolvement of technology. This design science research process compares different features, such as static typing, dependency injection, observer pattern, and component partition used in some of the most popular JavaScript frameworks (AngularJS, Angular 5, and React) and how they affect different maintainability attributes, particularly on modifiability and stability. In this study, simple time tracking software systems were created with each chosen JavaScript frameworks. These software systems were further developed in six additional updates. All software versions were analyzed in SonarCloud-service by using the following software metrics: source lines of code, cyclomatic complexity and cognitive complexity. Commit-impact analysis was used for measuring how the chosen feature correlates with the maintainability attributes during the development process. Study shows that the way how component partition is implemented in React increases application size but not its complexity. Results also indicate that the use of observer pattern might decrease maintainability whereas dependency injection or the use of static typing did not have a significant impact on the maintainability attributes measured in this study. | en |
dc.format.extent | 131 | |
dc.format.mimetype | application/pdf | |
dc.language.iso | fi | |
dc.rights | In Copyright | en |
dc.subject.other | web-sovellus | |
dc.subject.other | sovelluskehys | |
dc.subject.other | suunnittelutieteellinen tutkimus | |
dc.title | JavaScript-sovelluskehyksillä toteutettujen asiakassovellusten ylläpidettävyyden vertailu | |
dc.type | master thesis | |
dc.identifier.urn | URN:NBN:fi:jyu-201805252791 | |
dc.type.ontasot | Pro gradu -tutkielma | fi |
dc.type.ontasot | Master’s thesis | en |
dc.contributor.tiedekunta | Informaatioteknologian tiedekunta | fi |
dc.contributor.tiedekunta | Faculty of Information Technology | en |
dc.contributor.laitos | Informaatioteknologia | fi |
dc.contributor.laitos | Information Technology | en |
dc.contributor.yliopisto | Jyväskylän yliopisto | fi |
dc.contributor.yliopisto | University of Jyväskylä | en |
dc.contributor.oppiaine | Tietotekniikka | fi |
dc.contributor.oppiaine | Mathematical Information Technology | en |
dc.type.coar | http://purl.org/coar/resource_type/c_bdcc | |
dc.rights.accesslevel | openAccess | |
dc.type.publication | masterThesis | |
dc.contributor.oppiainekoodi | 602 | |
dc.subject.yso | sovelluskehykset | |
dc.subject.yso | JavaScript | |
dc.subject.yso | sovellukset (tietotekniikka) | |
dc.format.content | fulltext | |
dc.rights.url | https://rightsstatements.org/page/InC/1.0/ | |
dc.type.okm | G2 | |