Programs usually follow many implicit programming rules or patterns, violations of which frequently lead to failures. This thesis proposes a novel approach to statically mine object usage models representing such patterns for objects used in a program. Additionally, we will describe how object usage models can be used to automatically detect defects, increase program understanding and support programmers by providing code templates. In preliminary experiments the proposed method detected two previously unknown bugs in open source software.