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