Conference Exhibition Organizer Registration Home
Schedule Sessions Tutorials Speakers Symposium Event
JAOO 2000
Craig Larman, Director, Process and Methodology, at Valtech
Tutorial: Learning and Teaching OOA&D and Design Patterns
Taking a course or reading a book in UML notation does not constitute learning how to think in objects, although this is the unfortunate norm among many consumers and suppliers of object technology education. Over the last 15 years I have had the good fortune to personally mentor or teach between 2,000 and 3,000 students (in industry and colleges) of object analysis and design, and have reflected on, and experimented with, curriculums-both poor and good-to help people master this subtle art.

Many presentations (in print or course) on learning OOA&D emphasize activities such as use case or static class modeling. In these, when it comes time to discuss the specific design of object responsibilities and collaborations, there is typically some hand-waving or a minimalist discussion of the subject, or the detailed object interactions are presented as a "fait accompli", as though it were a minor problem, once the classes have been found and named. Ironically, nothing could be further from the truth for the object novice. It is profoundly difficult to learn, and is the true "make-or-break" skill in developing object systems. A good use case model is of little value if the resulting design of software objects is garbage.

In this tutorial you will learn concepts and techniques to improve object design education, to help students master these critical skills. We will explore:

  • how to use and teach the GRASP patterns for responsibility assignment
  • what is the connection between analysis, design, and code artifacts, and how to teach this
  • what are the most important GoF design patterns to teach, and how
  • other fundamental principles to stress in introductory object design curriculum
  • how not to teach OOA&D (and thus, what would constitute a poor course)
  • how not to teach object-oriented programming
  • the kinds of exercises and problems-both individual and collective-that help comprehension and retention
Attendee Background:
Familiarity with object-oriented programming and design. Although of special interest to educators, anyone concerned with transitioning an organization to the adoption of object technology will benefit, as much time and money is wasted in industry on low-value object education.

Thursday 13:00 - 16:00

Craig Larman is the author of "Applying UML and Patterns--An Introduction to Object-oriented Analysis and Design", the best-selling text on object-oriented analysis and design and the UML. He also co-authored the "Java 2 Performance and Idiom Guide" and writes the "Modeling and Java" column in Java Report. Craig is a popular conference speaker, and conference or advisory board member, at events such as OOPSLA, Software Development, and UML World.

To assist novices (and teachers) in object design education, he created the GRASP patterns, which represent fundamental principles of object design. Since 1986, Craig has personally taught OOA&D to between 2,000 and 3,000 people, and has formed opinions, based upon his experience, on what constitutes useful, effective OOA&D education.

Craig serves as Director, Process and Methodology, at Valtech, an international consulting and object technology education group with divisions in Europe and the USA. He has been using object technologies since 1984 when he started developing knowledge systems on LISP machines. For many years he has assisted others in developing object systems, adopting practical development processes, and in learning to apply object-oriented analysis and design, C++, Java, and Smalltalk.

Craig holds a B.Sc. and M.Sc. in computer science, with research emphasis in artificial intelligence, object-oriented knowledge representation and case-based reasoning.