1. A method for identifying at least one design pattern of a source code written in an object oriented programming language, comprising the steps of: parsing the source code to obtain a source code data set; identifying a first design pattern implementation of interest; and defining a first set of atomic search units corresponding to the first design pattern implementation of interest; wherein: in the defining step, each of the atomic search units is defined as a question having a true-or false answer, and each of the atomic search units is configured to evaluate a single verifiable property to a TRUE or FALSE state, when applied to said source code data set corresponding to at least one source code class in said source code written in an object oriented programming language; and in the defining step, the atomic search units are further defined so that a respective set of true-or-false answers to the set of questions respectively defined by the set of atomic search units in a predetermined search sequence; evaluating the source code class by checking the questions and the TRUE and FALSE answers corresponding to the questions; determining, based on the evaluating results, whether or not the first design pattern implementation of interest is identified in the source code.