Intended as an introduction and reference for developers in the area of visual and object-oriented programming, this text focuses on the elements and strategies which will help those who design object-oriented systems to avoid some of the known pitfalls. It discusses the challenges and opportunities in trying to achieve a combination which allows visual approaches to object-oriented programming, and which uses object-oriented approaches to bring out the best in visual programming.