STRUCTURAL COMPLEXITY FRAMEWORK AND METRICS FOR ANALYZING THE MAINTAINABILITY OF SASSY CASCADING STYLE SHEETS
Abstract
One of the most popular languages in the web domain is Cascading Style Sheet (CSS).
The language has evolved over time with the latest development being the introduction
of CSS preprocessors which has made it possible to write CSS codes in a faster and
efficient way. Therefore, the migration from CSS to CSS preprocessors by the frontend
developers has been tremendous. There are several CSS preprocessors available
in the industry with the Syntactically Awesome Style Sheets (SASS) becoming one of
the most preferred preprocessors. This elevation of SASS is as a result of influence by
its new syntax SCSS (Sassy Cascading Style Sheets) which is closer to CSS syntax.
Although SCSS is very promising, it has inherent complexity which keeps increasing
with time as a result of maintenance practices. The Entity-Attribute-Metric (EAM)
model was used to describe the process followed to identify SCSS metrics while the
Boehm model was used to identify the maintainability sub-characteristics. In addition,
the Muketha’s structural attributes classification framework was extended so as to
develop the SCSS structural attributes classification framework. The measurement of
software complexity via software metrics for different software’s and software
paradigms has continued to gain grounds over the years. There exists several structural
CSS metrics but they cannot be directly applied to SCSS because SCSS has richer
features than CSS. In addition, there is no existing framework that can be used to guide
the definition of SCSS structural complexity metrics. To close the gaps identified, the
researcher developed an SCSS complexity attributes classification framework which
was validated through an expert opinion survey. This study proposed a suite of SCSS
structural complexity metrics which were theoretically validated via Weyuker’s
properties and Kaner framework. In addition, a tool was developed to automate the
collection and computation of metric values. The data collected was analyzed through
descriptive statistics (frequencies, mean and standard deviation) and inferential
statistics (Spearman’s rho, ANOVA tests, and principle component analysis).
Empirical studies by way of experimentation were conducted and all the proposed
metrics strongly correlated with the three aspects of maintainability, namely,
understandability, modifiability, and testability. Additionally, the metrics were found
to be important for the measurement of SCSS complexity. The findings of this study
show that all the proposed metrics can serve as maintainability predictors for SCSS.