## 1 Introduction
Although concerns regarding the appropriateness of the Index for object-oriented languages have been expressed because the measure was initially proposed for systems developed in procedural programming languages [15; 18; 19; 20; 21], the Index is frequently used in maintainability research for object-oriented software. For instance, the Index is used for monitoring the maintainability of a software system over time to ensure high-quality software products, to guide and support software-related decision-making processes or characterize the software's maintainability evolution [10; 22; 23; 24; 25; 26; 27], to explore the relationship between maintainability and design or code metrics [14; 15; 16; 20; 28; 29], to detect technical debt [30], and recently, the Index has been used as a measure of maintainability in various machine learning prediction models [31; 32; 33; 34; 35]. As discussed above, several variants of the Index exist and are often used interchangeably. This is also the case with the aforementioned studies, as the choice of the variant used for the maintainability measurement of object-oriented software varies across them. Naturally, it is to be expected that maintainability assessment based on different variants computed using different equations may yield different results when subjected to the same software. The main advantage of the Index as a single-value measure of maintainability is its ability to be able to compare software in the context of others [9; 36], either to its previous versions or to completely different systems. Hence, besides possible differences in the value of different Index variants when applied to measure the maintainability of a single software, it is important to determine how the use of different Index variants influences the relationship between the maintainability of several different software. If the results of Index variants would prove to be significantly different, this could mean that decisions and conclusions based on the chosen variant might be different if another variant was utilized for maintainability assessment instead. Contrariwise, if the results of variants are shown to be similar, this could indicate that the choice of the variant does not significantly affect the end results. This has not been researched previously; thus, these assumptions cannot be verified without proper empirical investigations. The objectives of this work were twofold: first, to highlight distinct variants of the Maintainability Index employed to measure maintainability in object-oriented systems and assess the results of variants when applied to measure the maintainability of the same subject software; second, to research the results of the variants when applied to measure the maintainability of a software system to compare the system with other systems. To meet the above-specified objectives, the following two research questions (RQs) were formulated:  
* How do different Maintainability Index variants perform when utilized for the maintainability measurement of a single object-oriented software system? * How do different Maintainability Index variants perform when utilized for the maintainability measurement of an object-oriented software system in the context of other systems? * How do different Maintainability Index variants perform when utilized for maintainability measurement between different software systems? * How do different Maintainability Index variants perform when utilized for maintainability measurement between versions of the same software system? An experiment was conducted on data collected from the source code of 45 open-source software systems based on the Java programming language. For 42 software systems, only the last released version was included in the experiment, while for the remaining 3 systems, all versions from the release history were included. The Maintainability Index variants were computed from software metrics extracted from the code of each system by the JHawk tool.