JOURNAL OF SOFTWARE (JSW)
ISSN : 1796-217X
Volume : 3    Issue : 1    Date : January 2008

Cohesion, Coupling and Abstraction Level: Criteria for Capability Identification
Ramya Ravichandar and James D. Arthur
Page(s): 1-8
Full Text:
PDF (714 KB)


Abstract
Large-scale software-based systems warrant lengthy development cycles during which there is a
constant evolution of user needs and technology specifications. It is imperative that in order to
function satisfactorily the system components accommodate change. However, the traditional
process of development advises baselining requirements, as opposed to architecting the system
such that it supports evolution. We propose the construction of systems based on Capabilities to
accommodate functional changes in a nonintrusive manner. Capabilities are functional
abstractions designed to exhibit properties of stability — high cohesion, low coupling, and balanced
abstraction levels — which promote an underlying change-tolerant framework. To measure these
characteristics we explore two algorithms — Synthesis and Decomposition — based on polar
approaches to problem solving. The synthesis algorithm measures stability properties of detailed
rudimentary elements to determine which aggregates are Capabilities. In contrast, the
decomposition algorithm identifies Capabilities by evaluating higher-level abstractions that
represent various functionalities of the system to be developed. Upon empirical analysis (of a library
system) we determine that neither approach is sufficient in isolation. Therefore, we formulate a
computationally viable algorithm by reconciling specific aspects of measurement from the synthesis
and decomposition approaches. In particular, it uses the cohesion and coupling measures as
defined by the decomposition algorithm and the abstraction level as determined by the synthesis
algorithm. We construct specific metrics to compute cohesion and coupling. In addition, we
objectively define and illustrate the characterization of a balanced abstraction level. An experiment
with a Course Evaluation system confirms the efficacy of Capabilities in increasing its change-
tolerance.

Index Terms
Capabilities Engineering, Change-tolerance, requirements engineering, software process, metrics,
cohesion, coupling