The programming languages typically offered by CAD systems for third-party application developerswere procedural or functional. A major shift is currently occurring in that new versions of commercialCAD software will support object-oriented programming languages for application development.Developers who wish to take advantage of this new kind of environment must undergo a considerablecognitive “retoolingi and adopt new software engineering strategies. We describe a graduate coursethat aims at introducing students to effective object-oriented development strategies, especially usecase-driven development and the tools provided by the Unified Modelling Language (UML). Studentsgained experience with these tools by forming, together with the instructors, a single development teamwriting an application on top of MicroStation/J using JMDL as programming language. The paperdescribes the instructorsi experience with this approach.