Thinking in Objects

Accelerated Technical Training


Are you getting ready to tackle an object-oriented software development project? Are you at home with conventional procedural design approaches but new to object-oriented design? Are you still uncomfortable with O-O terminology? Would mastery of the new O-O techniques and tools like UML, CRC cards, use-cases, encapsulation, and sequence diagrams help you to be more effective in your work? If so, this course is for you.

Design problems are presented, and sample solutions are shown (both diagrammatically and in Java) and solution techniques are practiced. You will apply the techniques yourself, and your work will be reviewed with the instructor and discussed with the class.

In two intense days, you will acquire the terminology of this new software design paradigm, and you will be able to apply the most popular and widely-used techniques for creating and documenting object-oriented designs.


2 days



  • Emphasis on practical skills
  • Lots of exercises, practice sessions, and discussion
  • Instructor-led and classroom-based
  • The materials for this class are available on the web


  • Thinking in Objects is for experienced software designers making the transition to modern object-oriented paradigms and methods.
  • Prerequisites

    Check the ones your background satisfies:
    You have experience designing software.
    You have done some programming (in any language.)
    You face an object-oriented software design project in your job.
    If you checked 3 or more, you're well-equipped to take this class.


    Chapter 1: Housekeeping

      Chapter 2: Why Objects?

        Chapter 3: The Vocabulary of O-O

          Chapter 4: Below the Waterline: O-O Design

            Chapter 5: Describing Requirements with Use Cases

              Chapter 6: Identifying Potential Classes

                Chapter 7: Finding the Core Classes

                  Chapter 8: Assigning Responsibilities to Classes

                    Chapter 9: CRC Cards

                      Chapter 10: Identifying Relationships and Developing the Class Diagram

                        Chapter 11: Using Sequence Diagrams to Specify Dynamic Behavior

                          Chapter 12: Iterative Construction

                            Chapter 13: Construction

                              Chapter 14: Other Developments in Objects

                                Chapter 15: Conclusion

                                  Appendix A: Design Patterns

                                    Appendix B: Architectural Patterns


                                        Upon completion of this course, you will be able to:
                                        • Explain and apply the object-oriented paradigm
                                        • Design and use classes, objects, inheritance, superclasses, subclasses, container classes, and polymorphism
                                        • Apply techniques of modularity, reusability, and encapsulation
                                        • Reduce costs of programming
                                        • Develop object-oriented designs with state of the art techniques including use-cases, class lists, assignment of responsibilities to and collaborations among classes, and dynamic behavior analysis
                                        • Design and use constructors and other methods
                                        • Do domain analysis and responsibility-driven design
                                        • Recognize and apply design patterns
                                        • Express designs in Unified Modeling Language (UML), Class, Responsibilities, and Collaborations (CRC) cards, use-case diagrams, class diagrams, and sequence diagrams


                                      1. Examples of object-oriented designs are presented, including a bank account, an automated teller machine, an electronic checkbook, a waiting line simulation, a room scheduling system, an appointment system, a quick sort, and more.
                                      2. You also develop object-oriented designs of your own, applying principles discussed in class.
                                      3. Setup

                                        Delivery of this class requires:
                                        • classroom
                                        • a PC for the instructor
                                        • Microsoft PowerPoint
                                        • a data projector
                                        • connection to the Internet
                                        • Detailed system configuration instructions are available at
                                        Write to us!
                                        Updated Wednesday, 31-Oct-2001 13:18:38 MST

                                        Copyright © DKTS
                                        Dan Keller Technical Services
                                        4500 19th St., San Francisco
                                        California, USA 94114
                                        voice: 415 / 861-4500