Software development is knowledge-intensive as well as collaborative work carried out by several persons. In this type of education, project-based exercises are conducted in order to acquire skills. Object-oriented software development has recently emerged as the primary branch of learning. However, it is difficult for novice students to develop software using the object-oriented paradigm. This paper proposes a method of education and a learning environment for object-oriented software engineering based on the cognitive apprenticeship model.