Maintainability Predictors for Relational Database- Driven Software Applications: Results from a Survey Mehwish Riaz, Emilia Mendes, Ewan Tempero Department of Computer Science, The University of Auckland Auckland, New Zealand mria007@aucklanduni.ac.nz , emilia@cs.auckland.ac.nz , e.tempero@cs.auckland.ac.nz AbstractSoftware maintainability is a very important quality attribute. Its prediction for relational database-driven software applications can help organizations improve the maintainability of these applications. The research presented herein adopts a survey-based approach where a survey was conducted with 40 software professionals aimed at identifying and ranking the important maintainability predictors for relational database- driven software applications. The survey results were analyzed using frequency analysis, and results suggest that maintainability prediction for relational database-driven applications is not the same as that of traditional software applications. The results also provide a baseline for creating maintainability prediction models for relational database-driven software applications. Software maintainability, relational database-driven software applications; survey; predictors; frequency analysis I. INTRODUCTION Software maintainability is the ease with which a software system or component can be modified to correct faults, improve performance or other attributes, or adapt to a changed environment [6]. It is inherently associated with the process of software maintenance which has long been known to have the major amount of software costs associated to it [12]. In order to manage these costs, it is important to understand, predict and improve software maintainability [12]. Software maintainability prediction involves proposing and validating predictors that have a bearing on software maintainability [1] and then employing these predictors to create software maintainability prediction models [13]. With the help of a maintainability prediction model, software organizations can better manage their maintenance resources and adopt a defensive design [11]. Database-driven applications have gained much popularity in modern software development [4] with relational databases as the most used and most successful type of database [15]. Relational databases are different from and more formalized than other types of databases and persistence mechanisms [2]. Database-driven applications consist of a database, a Database Management System (DBMS), and a set of applications that interact with the database through this management system [7]. Relational database-driven applications are therefore, those database-driven applications that have a relational database backend. The change in requirements cause these applications to undergo maintenance resulting in storing increased number of data sources and relationships; increased database complexity; and increased coupling between the database and application [9]. This suggests that the maintainability of these applications is also impacted by database specific factors in addition to application specific factors [13]. Given the importance of relational database-driven software applications in modern software development, it is important to investigate the factors that impact upon their maintainability in order to enable maintainability prediction. This paper is a step towards predicting maintainability of relational database-driven application by providing a validated list of predictors that have an impact on the maintainability of relational database-driven applications. This list of predictors was initially gathered with the help of twelve interviews conducted with software professionals [13]. The interviews’ analyses resulted in the identification of 120 predictors. The focus of the work presented herein is to rank these predictors, with respect to the strength of their impact on the maintainability of relational database-driven applications, via another survey conducted with a larger sample of software professionals. The main contributions of this paper are therefore to: x Further validate the predictors of maintainability identified by Riaz et al. [13] within the context of relational database-driven software applications. x Rank the maintainability predictors for relational database-driven software applications in terms of their relative importance to predicting maintainability. x Establish whether the predictors presented by Riaz et al. [13] positively or negatively impact the maintainability of relational database-driven applications. x Present evidence on the type of applications and DBMS used the most in practice. The remainder of the paper is organized as follows. Section II gives an account of the related work. Section III details the research methodology. Section IV presents the results. A discussion on the results and threats to validity are given in Section V, followed by conclusions in Section VI. II. RELATED WORK The research presented herein is informed by the results of: (1) a Systematic Review (SR) conducted on the topic of ‘Software maintainability prediction and metrics’ [12]; and (2) twelve interviews conducted with software professionals [13]