APRT – Another Pattern Recognition Tool

Chris Bates, Ashley Robinson


Understanding and using Design Patterns improves software quality through better comprehension of programs for both experienced developers and relative novices. Often design patterns are learned through simplified “toy” programs and exemplars that foreground the structure of the pattern. In production code the objects and methods that comprise the pattern can be hidden within a complex mesh of intracode relationships. This paper introduces APRT, an ANTLRbased tool that recovers the structure of both static and dynamic patterns from large codebases so that they can be studied in context.


object-oriented; software architecture; program constructs; design patterns

Full Text:



Ampatzoglou, A., Frantzeskou, G. & Stamelos, I., 2012.

A methodology to assess the impact of design patterns on

software quality. Information and Software Technology,

(4), pp. 331-346.

Atkey, R., 2012. The Semantics of Parsing with

Semantic Actions. Dubrovnik, s.n., pp. 75-84.

Bacon, D. et al., n.d. The "Double-Checked Locking is

Broken" Declaration. [Online]

Available at:


dLocking.html [Accessed 13 February 2016].

Bergin, J. et al, 2012. Pedagogical Patterns: Advice for

Educators. Joseph Bergin Software Tools, 2012

Bloch, J., 2008. Effective Java (2nd Edition). Addison-


Dong, J., Zhao, Y. & Sun, Y., 2009. A Matrix-Based

Approach to Recovering Design Patterns. IEEE Transactions

on Systems, Man and Cybernetics, 29(6), pp. 1271-1282.

Gallier, J., 2010. Formal Languages And Automata

Models of Computation, Computability Basics of Recursive

Function Theory. Philadelphia: s.n.

Gamma, E., Richard, H., Johnson, R. & Vlissedes, J.,

Design Patterns: Elements of Reusable Object-

Oriented Software. Addison Wesley.

Haotain, Z. & Shu, L., 2013. Java Source Code Static

Check Eclipse Plug-in Based on Common Design Patterns.

Proceedings of Fourth World Congress on Software

Engineering, IEEE, pp. 165-170.

Kolfschoten, G., et al, Cognitive learning efficiency

through the use of design patterns in teaching, Computers &

Education, Volume 54, Issue 3, April 2010, Pages 652-660.

Parr, T. & Fisher, K., 2011. LL(*): The Foundation of

the ANTLR Parser Generator. ACM SIGPLAN Notices,

Association for Computing Machinery, pp. 425-436.

Seppälä, I., Java Design Patterns. [Online]. Available at:

http://java-design-patterns.com/. [Accessed 14 March 2016].

Vokac, M., 2006. An efficient tool for recovering Design

Patterns from C++ Code. Journal of Object Technology,

(1), pp. 139-157.


  • There are currently no refbacks.