Sirvi Autor "Rahkema, Kristiina, juhendaja" järgi
Nüüd näidatakse 1 - 13 13
- Tulemused lehekülje kohta
- Sorteerimisvalikud
Kirje Analysis of Common User Flows in Open-Source Android Applications(Tartu Ülikool, 2023) Käosaar, Kristofer; Rahkema, Kristiina, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutMany project templates for Android applications can be found on GitHub, but few contain implementations of whole user flows. This thesis focuses on extracting representations of user flows in the form of activity diagrams from existing open-source Android applications, with the goal to develop a project template featuring user flows such as onboarding, user creation and signing in. The activity diagrams of each user flow were combined with the intention of creating a representation of an average user flow that could be applied to most use cases. The project template was developed based on those combined activity diagrams in Android Studio using Kotlin and following a Model-View-ViewModel architecture. The project template was evaluated by recreating user flows of six open-source Android applications and measuring how much of the codebase needed to be changed to achieve a similar user interface. The result indicates that systematically analysing the user flows of existing applications is a useful starting point for creating easily adaptable project templates.Kirje Analysis of dependency graphs of third party libraries in different package managers(Tartu Ülikool, 2022) Sein, Karina; Rahkema, Kristiina, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutCode development can be a complicated and lengthy process. One option to speed up development is to use third party packages. Third party libraries are generally managed with a package manager. Considering that libraries can use other libraries to build their own functionalities, then the dependency graphs for third party libraries can get extensive. Mistakes or security issues in one library can also affect other libraries in which it is used. Package managers have already been analysed from many different perspectives. One popular dataset is the libraries.io dataset. Previous research using the 2017 libraries.io dataset concluded that package manager ecosystems grow either linearly or exponentially. The goal of this thesis is to use the newer 2020 version of the libraries.io dataset to analyse growth trends in the number of libraries, versions and dependencies for each package manager. The results are then compared with previous research. It was discovered that not all package managers showed growing trends. Of the selected package managers, three were slowing down istead. In one case this trend was due to incorrect data. Additionally, experiences and potential problems with using the popular libraries.io dataset are described.Kirje Analysis of iOS Jailbreak and Jailbreak-Enabling Vulnerabilities(Tartu Ülikool, 2023) Aktuğ, Sarp; Rahkema, Kristiina, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutiOS jailbreak on protsess, mille käigus kasutatakse ära iOS operatsioonisüsteemis olevaid turvaauke, et üle kirjutada tootja poolt seatud ja sisseehitatud piiranguid. Protsessi käigus muudetakse ajutiselt, või püsivalt operatsioonisüsteemi osasid, et käivitada kood suuremate õigustega. Käesoleva uuringu eesmärk on edasi anda põhjalikud teadmised ja arusaam iOS Jailbreak’idest. Eesmärgi saavutamiseks analüüsitakse selle ajaloolist arengut Apple’i tooteperekonna erinevate seadmete ja operatsioonisüsteemi versioonide lõikes. Lisaks uuritakse Jailbreak’ide poolt ära kasutatud turvaauke. Uuring keskendub peamiselt: mõistmisele, mis on jailbreak, kuidas see toimimiseks turvaauke ära kasutab, milliseid turvaauke ärakasutatakse ja turvanaukude kategoriseerimisele.Kirje Analysis of Third-Party Dependencies – A Systematic Literature Review(Tartu Ülikool, 2022) Sakerman, Liisa; Rahkema, Kristiina, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutThe aim of this thesis is to provide an aggregate view of the relevant studies done in the field of third-party dependency analysis. Developers often use and rely on third-party libraries in their projects and package managers help to handle and keep track of those dependencies. This paper presents a systematic literature review in the domain and creates an overview of the contributions of the empirical studies. Most of the studies focused in their aims on the third-party dependency maintenance aspects and their security implications. The problems they discussed were related to these aspects as well, with suggestions to incorporate more automated tool support to aid with the maintenance. Such tools were also developed in the scope of some of the studies. Studies were data-heavy, where the metadata was mined from open-source databases or package manager repositories – most investigated package managers were Maven and npm. For future work it was suggested to carry out the existing research for other package managers, extend the research to the mobile domain and complement quantitative approaches with qualitative methods.Kirje Building a tool for detecting code smells in Android application code(Tartu Ülikool, 2020) Mõškovski, Stanislav; Rahkema, Kristiina, juhendaja; Pfahl, Dietmar, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutIn recent years, quality of the code behind the presentation layer has become increasingly important since a high number of applications are in maintenance mode. Maintaining complex applications is hard and modifying code that is difficult to understand may introduce new bugs. Poor design or implementation choices that contribute to technical debt are called code smells. Static analyzers are tools used to detect code smells and other vulnerabilities inside software applications. In this paper, we analyze static analysis tools and also develop an alternative, which tries to overcome the shortcomings of the previous tools by providing more code smell detection rules. As a result, we developed a plugin for SonarQube that analyzes applications written in Java programming language. Finally, we verified our tool by performing an empirical study on a selected corpus of applications.Kirje Exploration of Techniques to Visualise Code Quality(Tartu Ülikool, 2021) Storožev, Miron; Pfahl, Dietmar Alfred Paul Kurt, juhendaja; Rahkema, Kristiina, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutAs the size and complexity of the software increase, it becomes more challenging to maintain the quality of the code. Various static code analysis tools have been developed to help software engineers to find inefficiencies in the code. However, most static analysis tools focus on specific parts of the development and not the project as a whole, thus failing to provide a general overview of the code quality. The goal of the thesis is to develop a software tool to visualize the code quality of an entire project. Requirements for the application are elicited based on the interviews conducted with different stakeholders in digital transformation company Nortal. The application is developed on top of GraphifyEvolution static code analysis tool, but the architecture of the application allows the addition of other static analyzers. The application is evaluated by conducting interviews with various stakeholders. Interviews show that the tool can be used in a real production environment by developers and scrum masters.Kirje How do developers update dependencies in iOS libraries?(Tartu Ülikool, 2023) Kallaste, Peter; Rahkema, Kristiina, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutSoftware developers use third-party libraries to help with their coding process. Although they are often tested by multiple developers, they still need to be regularly updated. For example, when a library adds a new feature or library contains a bug. It is helpful to know if there are any updating patterns for libraries, so that library developers can better understand their users. Multiple related studies have analysed the updating patterns of many environments, but none are for iOS environments. The goal of this study is to analyse iOS libraries and find if there are any patterns for updating them. We will use the preexisting Swift Library Dependency Network (Swift LDN) dataset that contains libraries from CocoaPods, Carthage and SwiftPM package managers. We will check if and how the iOS developers update their libraries. During the analysis, we found that iOS developers usually choose the latest version of the library and later do not update that library anymore.Kirje How well could have existing static vulnera-bility detection tools prevented publicly re-ported vulnerabilities in iOS open source packages?(Tartu Ülikool, 2023) Jääts, Karl; Rahkema, Kristiina, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutPreventing vulnerabilities is an ever present and high risk issue in software development that can cause a lot of problems if vulnerabilities are not detected. To prevent vulnerabilities as much as possible many different techniques and approaches have been developed and one of those is vulnerability detection tools. Many such tools have been created but it is unclear how effective the approach is at preventing real world vulnerabilities. In this thesis testing was carried out on publicly reported vulnerabilities in iOS open source packages with the aim of finding out how many of these vulnerabilities could have been prevented by using these tools. Multiple types of security testing tools exist, such as static application security testing (SAST), dynamic security testing (DAST), manual testing and other hybrid approaches. In this thesis SAST tools are used due to their relative ease of use. 5 SAST tools were tested on 81 publicly reported vulnerabilities in 23 packages with 14 out of the 81 vulnerable code segments being flagged by at least one tool. However due to the way these vulnerabilities were reported and the prevalence of false positives it seems that these SAST tools are not good at pinpointing existing vulnerabilities. Instead they help prevent vulnerabilities by directing the developers to write better quality code and notifying them of functions and approaches that are difficult to implement safely so that they know to take extra care or find safer alternatives.Kirje Implementation of JIT (Just in Time) Visuali-zation of Changes in Source Code(Tartu Ülikool, 2022) Linde, Einar; Rahkema, Kristiina, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutThe need for software developers increases at a high pace. But the programming is a difficult cognitive skill to learn and the supply of good programmers does not meet the need. Es-pecially hard it is for beginner programmers and therefore there are high drop-out rates in universities. Tools that help beginner programmers to understand the code exist. But none provides real-time visualization of source code evolution. The goal of this thesis is to deve-lop a tool that visualizes source code changes in real-time. The thesis describes the deve-lopment process and architecture of the source code analysis tool and gives usage scenarios on how the tool could help new developers understand object-oriented code. The main ob-jective is to analyze Java code. The real-time analysis is achieved by using a language server protocol that provides real-time data from the user’s editor. To analyze the code, GraphifyEvolution is used. Even though the main analyzed language is Java, the tool’s architecture supports the addition of a new language. The developed tool is called JitEvo-lution.Kirje Kolmandate osapoolte teekide kontrollimise tööriistade analüüs ja täiustamine(Tartu Ülikool, 2024) Voor, Risto; Rahkema, Kristiina, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutIn this bachelor's thesis, various third-party library checking tools were analyzed, the SwiftDependencyChecker application was moved from the Swift programming language to Java, and various ways to improve it were analyzed, and one of them was realized. The work introduces the reader to various terms related to the topic, the most important databases and tools. The reasons for moving the app are explained and both languages are introduced. Improving the tool will present two different ways of how it was planned to be done and why the current solution was realized.Kirje Kuidas mõjutab mobiiliäpi arendusraamistiku valik arendusprotsessi ja lõpptoodet? Juhtumiuuring(Tartu Ülikool, 2022) Kim, Erik; Rahkema, Kristiina, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutSelles lõputöös uuritakse, kuidas mõjutab mobiiliäpi arendusraamistik arendusprotsessi ning lõpptoodet. Uuringu käigus luuakse kolm mobiilirakendust: native Android, native iOS ning Flutter. Mobiilirakenduste vahel uuritakse koodipikkust, kompileerimisaega, arendusteekide lisamist ning arendaja enda kogemust. Mobiilirakendused on loodud ettevõttele Leadfellow.Kirje Overview of Code Smell Detection Tools for Android and iOS Applications(Tartu Ülikool, 2020) Sakerman, Liisa; Rahkema, Kristiina, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutThe aim of this thesis is to give an up-to-date overview of code smell detection tools for Android and iOS applications. There are numerous tools available for developers that help detect code smells and refactor code. Most tools detect only some types of code smells and sometimes use different rules and methodologies for detection and analysis. In this thesis, the code smells found by different code smell detection tools are determined and an overview of those tools for Android and iOS applications is given. Tools are then tested on numerous different Android applications.Kirje Software Analytics: Visualization of Source Code Evolution(Tartu Ülikool, 2021) Badalov, Turkhan; Rahkema, Kristiina, juhendaja; Pfahl, Dietmar Alfred Paul Kurt, juhendaja; Tartu Ülikool. Loodus- ja täppisteaduste valdkond; Tartu Ülikool. Arvutiteaduse instituutModern software projects are evolving with high pace. With such ever-growing software projects, reading and editing someone’s code is unavoidable. Thus, it is important to have the means for analyzing source code evolution that would help understand the context of changes that have happened over time. The concept of visualization has been constantly used across many fields and industries to aid understanding and to convey one or another message. Nowadays, computer graphics with mature visualization tools and libraries present a good opportunity to build diagrams that could be used to understand the source code evolution. The goal of this thesis is to demonstrate new ways to aid source code evolution analysis by developing an open-source tool that visualizes changes made in the source code over time. While most of the available tools that visualize source code focus primarily on one state of the project, embracing the timeline in our visualization is the main difference between them. The visualisation tool encompasses three views each concentrating on a different aspect of source code evolution analysis. Emphasising the evolution timeline in the visualisations makes it possible to detect classes and methods prone to changes. Another central point in the visualisations is the connectedness of methods and classes highlighting entities that have taken on too many responsibilities. All views contain interactive elements that provide additional information on demand.