Visual indicator and software metric formula to determine class cohesion problem and software design quality

  • Authors:
  • Djon Irwanto

  • Affiliations:
  • Department of Computer Science, Binus University, Republic of Indonesia

  • Venue:
  • CIMMACS'11/ISP'11 Proceedings of the 10th WSEAS international conference on Computational Intelligence, Man-Machine Systems and Cybernetics, and proceedings of the 10th WSEAS international conference on Information Security and Privacy
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Classes is the basic unit in object oriented software, therefore their quality has significant impact on the overall quality of the software. Class cohesion is one of the important factors that determine whether the design quality of a software is good or bad. In software development it is essential for software developers to gauge the degree of cohesion; yet in software development practice, it is rarely found software developers who are concerned with class cohesion and design quality. The lack of concerns resulted in their assembled software being difficult to maintain, understood and reused. Although these days there are many literatures discussing software metric as a tool to calculate the degree of cohesion, in reality the tool is rarely used. To seek an answer why these developers are reluctant to employ these metrics, a survey to several software developers was conducted. The result of the survey reveals that the developers prefer for an easier and more practical measurement. The use of a complicated and less practical measuring method makes the developers unwilling to gauge their design. Through this paper, the researcher is trying to formulate a more practical software metric and visual indicator that are easier to use. By applying visual indicator, the classes that have bad cohesion are able to be detected visually as well as able to map the risk of design outcome from metric gauging. It is hoped that visual indicator and software metric are able to be complementary tools for design software and refactoring; able to detect class cohesion problems fast and pinpoint area refactoring location.