Object Oriented Design Tutorial

Object Oriented Design TutorialWelcome to my Object Oriented Design Tutorial! I cover a ton of things in the video below.

The goal of this tutorial is to teach you how to create excellent OO designs. In this tutorial, I start off with a programming idea and walk you through the process of creating a Use Case, Object Model, Sequence Diagram and Class Diagram.

If you need help understanding sequence diagrams look here. The diagrams that follow the video should help you along though.

If you like videos like this, it helps to tell Google with a click here [googleplusone]

If you know anyone studying Object Oriented Design, feel free to share [nttfblike]

Object Oriented Design Cheat Sheet

Click the image below a few times to view it full screen

Object Oriented Design

60 thoughts on “Object Oriented Design Tutorial”

    1. Thank you very much 🙂 I have really been covering OO on a very complicated level lately. I’m happy to hear that the videos are helping

  1. Hi Derek
    I am planning to start a project in java. But i don’t know how to start so that it will use all the concepts of OOP.
    Can you help me also Is it necessary to design UML diagrams before starting project.
    My this new project will grow in future and I may need to add more and functions and classes.

    1. I can only tell you what I did when I was involved in big projects in the past. I worked in teams of between 5 to 50 people and we always created UML diagrams. Every place I worked in what is called the iterative design process. I’m covering it in the videos I’m making right now. It is very easy to forget some little thing that later blows up your whole project or makes it take longer than it should without planning. Little projects can me accomplished without them, but I think they are a must in big projects. I hope that helps

  2. Great Tutorial as always Derek! Just wanted to let you know I’m watching 🙂 I think you really keep it simple and it is very easy to understand when you explain what is typically considered a complicated subject. I’m going to start teaching my 9 year old daughter programming and I will use your tutorials since I’m not as good a teacher as you. I’ll let you know how she does 🙂 Thanks again!

    1. Thank you 🙂 The goal is to make everything fun. I don’t think I’ve done a great job of that, but I will in the future. With programming a person could make a fun game almost immediately. I want to make a Java tutorial based around teaching game development. Your daughter would probably prefer that. Always feel free to tell me how I can improve and ask questions

  3. I recently started messing around with creating a 2d game and as you say…and I have come to realize… planning matters! so yes I’m def watching this. And no i’ve never see anything like this elsewhere. Thnx as always.

    1. When you have a big project you have to plan. From what I have seen normally a few small mistakes will completely destroy a project. It is a pain in the beginning, but after a while it will just be part of the way you program. Other programmers that see your code will also realize how good you are. Many more are in the works 🙂

  4. Video that I was waiting for.
    Great, I am trying to learn Java and I think this is the first thing I should learn. Derek did and excellent job. I hope he will continue making videos about UML and OOP. Thank Derek for your help !

    1. Thank you very much. Most every tutorial from now on will include sequence diagrams if the program is complicated enough. I’m glad you found them useful 🙂

  5. It’s really nice tutorial. I have browsed alot to find these kind of tutorial and finally found one:)

    Thanks for sharing.

  6. Thanks to all of your tutorials, I am interesting to watch (UML, OOP design, OOP design patterns, XML and code re-factoring ).

    I really like your style in teaching, thanks again

    1. You are very welcome 🙂 I really enjoyed making those tutorials. My ultimate goal is to provide a complete software engineering degree online for free.

    1. In this situation I decided to create the players in the main program. If I was planning to have an unlimited number of players I may have chosen to avoid doing that

  7. Thanx for this enlightening tutorial! I am a very beginner on OOP and I just became familiar with the idea. Thanx a lot. 🙂

  8. Thank You for these very informative tutorials.I have a small Question regarding Object model creation.

    In complex situation is there some best practices that could be followed to work out the Object model & relationships as it may be a bit hazy some times?

    Should the Object model be always drawn first and ideally would it only contain Actors that would be used in drawing the Use Case diagrams?(

    1. I personally just use a description, a complex sequence diagram and a simple class diagram. I pretty much ignore everything else. Everyone finds their own preferred uml tools, or they are forced to use what the company prefers.

  9. Just wanted to say thank you for the videos! Just started viewing and I gotta say I am blown away! It is easier for me to understand if I see an example (like your videos) than if I try and follow along in a book. Thanks again!

  10. Thanks a lot for videos. This one of the simplest explanation I have found on OOPs concept and its transformation to actual coding.
    Note: I visited this page few days back. Today I was not able to see video again.

    1. You’re very welcome 🙂 Sorry about the viewing problem. Some times YouTube gets slow. I have been thinking about posting to other video sites, but I’m not sure who to use.

  11. Awesome tutorial. Just found out on internet.
    Great teaching Derek.
    I like the simplicity & your approach.
    Two thumbs up 🙂

  12. very awsome tuturial derek
    You explain things in a very simpler way
    Thanks a lot for sharing these wonderful tutorials

  13. Goodness gracious Derek man, you a lifesaver! Thanks for the tutorial! This would help me loads as I have loads of ideas but I try to go from concept to code but it gets frustrating. However with OOD in the middle, this might just be the break I’ve been praying for…
    Thanks again. Say, you on twitter?

    1. I’m very happy that I could help 🙂 Yes discovering OOD definitely took my coding to the next level. I’m on Twitter, but I don’t do much there. @newthinktank

      My main social network is Google+ because I have been forced to use it since I’m on YouTube.

  14. Hi Derek,

    Would like to thank you for the work you put on these tutorials, I quite like the way you present the content, very straightforward.

    I am working on my graduate project and I found some of your tutorials easier to use as part of my content review than my uni texts, so yes I may be putting a note or two on my project bibliography pointing to some of your material. Hopefully this would be OK with you?

    On another note, I was wondering if you have any section on your OOP tutorials that quotes any references you may used for your work, textbooks or websites, anything really? This would greatly help me with the literature review I have to carry out.

    Best regards,
    Marcelo

    1. Hi Marcelo,

      I’m very happy that I was able to help with your graduate project. Most of this material comes from personal notes I have made over a couple of decades. I learned a lot from the books Design Patterns: Elements of Reusable Object-Oriented Software, Refactoring: Improving the Design of Existing Code, The Pragmatic Programmer, and Test Driven Development.

      A great deal of this information comes from personal experience however. I hope that helps 🙂
      Derek

  15. Hi Derek.. wonderful tutorial. I am eagerly waiting for the tutorials like this on game development.

  16. I have been doing procedural based programming for 20 years (Lotus Notes). I want to move to Android development. I figured, I have been programming for a long time, what’s one more programming language to learn. I’m finding this a more daunting task than I originally thought.

    OO programming, Java & Android are getting the better of me. How would you recommend I start the transition process? I have seen that you seem to have your hand in many many programming arenas.

    I appreciate the time you have taken to do these tutorials!!

    1. Thank you 🙂 If you know the basic syntax of Java you should be ready for Android. The one thing you need to understand is that Android uses an MVC structure. I cover it here. After that you should be ready for my Android tutorial. Feel free to ask questions.

Leave a Reply

Your email address will not be published. Required fields are marked *