firstthink about recent programming project you've completed identify the most prominent object in the design try to think of as many attributes for this object as possible did it havecolorweightsizeprofitcostnameid numberpricestylethink about the attribute types were they primitives or classeswere some of those attributes actually behaviors in disguisesometimes what looks like data is actually calculated from other data on the objectand you can use method to do those calculations what other methods or behaviors did the object havewhich objects called those methodswhat kinds of relationships did they have with this objectnowthink about an upcoming project it doesn' matter what the project isit might be fun free-time project or multimillion dollar contract it doesn' have to be complete applicationit could just be one subsystem perform basic object-oriented analysis identify the requirements and the interacting objects sketch out class diagram featuring the highest level of abstraction on that system identify the major interacting objects identify minor supporting objects go into detail for the attributes and methods of some of the most interesting ones take different objects to different levels of abstraction look for places you can use inheritance or composition look for places you should avoid inheritance the goal is not to design system (although you're certainly welcome to do so if inclination meets both ambition and available timethe goal is to think about objectoriented designs focusing on projects that you have worked onor are expecting to work on in the futuresimply makes it real nowvisit your favorite search engine and look up some tutorials on uml there are dozensso find the one that suits your preferred method of study sketch some class diagrams or sequence diagram for the objects you identified earlier don' get too hung up on memorizing the syntax (after allif it is importantyou can always look it up again)just get feel for the language something will stay lodged in your brainand it can make communicating bit easier if you can quickly sketch diagram for your next oop discussion summary in this we took whirlwind tour through the terminology of the objectoriented paradigmfocusing on object-oriented design we can separate different objects into taxonomy of different classes and describe the attributes and behaviors of those objects via the class interface classes describe objectsabstractionencapsulationand information hiding are highly related concepts there are many different kinds of relationships between objectsincluding associationcompositionand inheritance uml syntax can be useful for fun and communication in the next we'll explore how to implement classes and methods in python