Skip to Main Content
We present an overview of SPQR, the System for Pattern Query and Recognition, a toolkit that detects instances of known design patterns directly from object-oriented source code in an automated and flexible manner. Based on our previous work in ñ-calculus and Pattern/Object Markup Language (POML), SPQR is retargetable to most OO languages, and system design notations. We discuss how this approach may be applied to architectural concerns by leveraging SPQRs training mode. The System for Pattern Query and Recognition, or SPQR, is an automated framework to analyze software systems in the small or the large, and detect instances of known programming concepts in a flexible yet formal manner. These concepts, combined in well-defined ways to form abstractions, as found in the design patterns literature, then lead to the possible automated detection of design patterns directly from source code and other design artifacts. Our previous publications [7, 8] have described SPQR in detail, as well as its successful application to a number of software systems. Here we describe SPQR briefly, and how these principles can be extended to architectural analysis.