SEFeb 11, 2013

Metrics for Assessing The Design of Software Interfaces

arXiv:1302.2657v15 citations
Originality Incremental advance
AI Analysis

This work addresses the need for better design evaluation tools for software developers, focusing on interfaces, but it is incremental as it builds on existing metrics for class design.

The paper tackles the problem of assessing software interface design quality by proposing three metrics to detect specific design defects like shared similarity, clones, and redundancy in interface hierarchies, and demonstrates their usefulness through an empirical study on three large Java applications.

Recent studies have largely investigated the detection of class design anomalies. They proposed a large set of metrics that help in detecting those anomalies and in predicting the quality of class design. While those studies and the proposed metrics are valuable, they do not address the particularities of software interfaces. Interfaces define the contracts that spell out how software modules and logic units interact with each other. This paper proposes a list of design defects related to interfaces: shared similarity between interfaces, interface clones and redundancy in interface hierarchy. We identify and describe those design defects through real examples, taken from well-known Java applications. Then we define three metrics that help in automatically estimating the interface design quality, regarding the proposed design anomalies, and identify refactoring candidates. We investigate our metrics and show their usefulness through an empirical study conducted on three large Java applications.

Foundations

The foundational work for this paper's niche, ranked by how specifically the neighbourhood builds on it — not by global fame.

Your Notes