Abstract:
This study proposes a prediction model built on fuzzy logic technology to estimate the maintainability of a
software product. This research is guided by two objectives: First is to establish the factors that determine
software maintainability at source-code level and the metrics that capture these factors. Second is to
establish a means of combining these metrics and weigh them against each other. The outcomes of these
objectives are presented as well as a discussion of knowledge modeling using fuzzy logic. The development of
this model is based on the fact that maintainability like other software quality facets can be described in
terms of a hierarchy. This hierarchy consists of factors, attributes and metrics. The model captures factors
that determine maintainability at source-code level as articulated by various attributes. Three metrics which
quantify these attributes are then considered as input parameters to the model. These metrics are average
cyclomatic complexity, average number of live variables and the average life span of variables. Fuzzy logic is
then used to weigh the metrics against each other and combine them into one output value which is the
estimated software maintainability. This work is a contribution to the on-going research aimed at establishing
a means to quantify maintainability of software. It is also an improvement to the much criticized
maintainability index (MI), the identified measure so far.