Design patterns are an established means for building evolvable and maintainable object-oriented software. However, using them requires the developer’s extensive experience. A wrongly selected design pattern may cause more harm than the right pattern would do good. A single developer is not able to totally know all to date documented patterns, or even identify the best pattern for his current design problem. This paper presents an approach aiding the developer in selecting the right pattern for a given context by introducing annotations (expressing meanings) to objectoriented source code. Eventually the approach is based on trying to match the intentions defined for a particular design pattern with those determined for a given source code fragment. As the existence of source code is a prerequisite the approach is suitable for developers directly working with code and not using a modelling tool that updates their code, or for the reengineering phase.