  The validation of design pattern implementations to identify pattern
violations has gained more relevance as part of re-engineering processes in
order to preserve, extend, reuse software projects in rapid development
environments. If design pattern implementations do not conform to their
definitions, they are considered a violation. Software aging and the lack of
experience of developers are the origins of design pattern violations. It is
important to check the correctness of the design pattern implementations
against some predefined characteristics to detect and to correct violations,
thus, to reduce costs. Currently, several tools have been developed to detect
design pattern instances, but there has been little work done in creating an
automated tool to identify and validate design pattern violations. In this
paper we propose a Design Pattern Violations Identification and Assessment
(DPVIA) tool, which has the ability to identify software design pattern
violations and report the conformance score of pattern instance implementations
towards a set of predefined characteristics for any design pattern definition
whether Gang of Four (GoF) design patterns by Gamma et al[1]; or custom pattern
by software developer. Moreover, we have verified the validity of the proposed
tool using two evaluation experiments and the results were manually checked.
Finally, in order to assess the functionality of the proposed tool, it is
evaluated with a data-set containing 5,679,964 Lines of Code among 28,669 in 15
open-source projects, with a large and small size of open-source projects that
extensively and systematically employing design patterns, to determine design
pattern violations and suggest refactoring solutions, thus keeping costs of
software evolution. The results can be used by software architects to develop
best practices while using design patterns.
