Author_Institution :
Dept. of Software Eng., Univ. of Szeged, Szeged, Hungary
Abstract :
Due to its very obvious and direct connection with the costs of altering the behavior of a software, maintainability is probably the most attractive, observed and evaluated quality characteristic of the software products. There are many coding practices and techniques that may influence the maintainability of a system (e.g. design patterns, coding rules, anti-patterns, refactoring techniques). However, the empirical evidences of the connection between coding practices and maintainability are vague due to the following reasons: i) finding instances of coding primitives like design patterns, anti-patterns, etc. precisely with reverse engineering tools is not easy, ii) the lack of mature practical quality models for objective calculation of maintainability and handling its ambiguity, iii) few empirical studies directly evaluating the connection of coding techniques and software maintainability. The presented work focuses on solving these major problems by creating a benchmark for evaluating the performance of different reverse engineering tools and introducing a novel probabilistic approach for measuring software maintainability. By performing case studies based on new analysis methods we evince that there is a significant correlation between the design pattern density and the maintainability of a system, e.g. 0.89 Pearson correlation for JHotDraw. Moreover, preliminary studies show that applying refactoring has indeed a traceable positive impact on software maintainability as anticipated.
Keywords :
object-oriented methods; software maintenance; software metrics; software performance evaluation; software quality; JHotDraw; Pearson correlation; anti patterns; coding practice effect; coding rules; design pattern density; performance evaluation; refactoring techniques; software maintainability measurement; software product quality characteristic evaluation; software product quality characteristic observation; Benchmark testing; Computational modeling; Encoding; IEC standards; ISO standards; Reverse engineering; Software; Anti-patterns; Case Study; Desin Patterns; ISO/IEC 9126; Refactoring; Software Maintainability;