Abstract
A significant percentage of today’s software is based on open source software (OSS). This includes not only small software projects but also large, popular, andwidely used OSS projects such as operating systems (Linux) andweb browsers (Firefox, Chromium). Often, OSS projects have built an evolving community with members around them, including developers, bugreporters, bug fixers, and various other roles. These members can join the project (magnetism) and can be very active or passive (stickiness). Based on these two dimensions of magnetismand stickiness, the popularity of a project can be determined and be categorized into the following categories: attractive, stagnant, fluctuating, or terminal. Maintainability is another important aspect of software, including OSS. It is a crucial component of software quality, for which numerous quality models are available. These quality models measure
certain quality characteristics through various metrics. Although the quality as well as community aspects of OSS projects have been researched by other scholars, the influence of transitions between these four categories on the maintainability metrics of OSS projects remained under-explored. This study aims at filling this research gap.
We composed a quality model, adapted from existing models, that measures both quality (with a focus on maintainability) and the community related metrics of OSS projects. With this quality model, we attempt to investigate and characterize the possible relationship between the maintainability of software and changing popularity. For this, we used a custom created dataset consisting of 90 random Java projects from GitHub. To measure the metrics from the quality model we developed a tool to analyze the repositories in the dataset in
multiple periods. Optionally, we tried to determine if it is possible to predict future maintainability characteristics based on current popularity and maintainability. Fromour results, it appears that themaintainability characteristics of projects usually do not improve or worsen, even when the popularity of a project changes. Projects often change in popularity and seem to frequently end up in a stable phase without attracting new developers.
Date of Award | 30 May 2024 |
---|---|
Original language | English |
Supervisor | Ebrahim Rahimi (Examiner) & Bastiaan Heeren (Co-assessor) |
Master's Degree
- Master Software Engineering