SMARtS: Software Metric Analyzer for Relational Database Systems Bushra Jamil Department of Computer Science University of Sargodha Sargodha, Pakistan bushra_jameel@yahoo.com Asma Batool Department of Computer Science University of Sargodha Sargodha, Pakistan asma.batool@yahoo.com Abstract—Software complexity has a strong impact on development effort and maintainability. Measurement of complexity can help managers in project planning and cost estimation. A number of metrics exist to measure the complexity for procedural and object oriented applications. In this paper we present a model to compute the complexity for small scale relational database applications. Our model is based on different relational database objects. Complexity of each database object is computed by assigning suitable weights to its complexity determining factors. To evaluate our model, we have applied correlation analysis on computed complexity and actual effort. The results indicate a strong correlation between the effort and complexity computed by our model. Complexity Determining Factors; Categorization Ranges; Complexity Weights, Database Application Complexity Estimation; I. INTRODUCTION Measurement of certain attributes during software development process is one of the most important activities in software project management. Measurements enable project manager to determine the impact of improvement efforts towards software development process [2]. Software metrics are measurement based techniques that are helpful for project manager in estimating some necessary information like budget, schedule, effort and other resources at initial level [1]. Using measurements large number of software metrics has been proposed to estimate the above stated parameters. Most commonly used metrics are LOC, function points by Albrecht, cyclomatic complexity by McCabes, COCOMO by Boehm and Information flow by Henry and Kafura. All of the above specified metrics are well suited to applications developed in procedural and object-oriented languages [2]. However there are no such studies that compute complexity metric of relational database systems based on detailed features of database objects such as for a table, constraints like assertion and triggers increase its implementation effort. In this paper we propose architecture for Software(S) Metric (M) Analyzer (A) for Relational(R) Database (t) Systems(S) (SMARtS) to compute the complexity of relational database applications. The complexity is computed on the basis of weights assigned to complexity determining factors of each database object. The proposed SMARtS system is developed using VC++ 6 and MS Access. We have collected eight projects out of which six projects are small scale student projects and rest two are business applications. To evaluate the authenticity of proposed weights we have calculated the complexity using SMARtS and analyzed computed complexity and real effort using correlation analysis. Obtained results suggest that there is high correlation between computed complexity and actual effort. This paper is organized as follows: Section 2 describes literature review; Section 3gives the detailed introduction of major database objects; Section 4 presents the architecture of SMARtS; Section 5 presents categorization of objects; Section 6 describes the results and section 7 concludes the paper and proposes future directions. II. LITERATURE REVIEW Software metrics has been promoted since early 1970s. Initially SLOC were proposed to compute work effort but it was imprecise in most of the cases. Function points by Albrecht were well suited to scientific and engineering applications [8]. Another attempt in this regard was done by McCabes who used flow graphs to compute the complexity of code [11]. Flow graphs mainly focus control statements to compute complexity. Most of the proposed metrics are mainly suitable for the procedural languages while ignoring relational database applications. Bang model by DeMarco was the first model based on data model but its validation has not been proved by any means [6]. In [12] Mario Piattini proposed a metric that was based upon tables, attributes in table and its degree. As this model ignored all other objects so its results were not accurate. Another attempt in this regard was a proposed metric to compute the complexity and effort of a small scale relational database application that is presented in [2]. This metric was based upon the complexity level of each of the database object. III. OBJECTS OF THE RELATIONAL DATABASE SYSTEMS The complexity of the conventional database systems developed in any relational DBMS depends upon the five major database objects: tables, relationships, queries, forms and reports. These objects can be classified as simple, average or complex [1]. Characteristics of these objects vary on the 978-1-4244-8003-6/10/$26.00 ©2010 IEEE