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

Object Oriented Design Cheat Sheet

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

Object Oriented Design

60 Responses to “Object Oriented Design Tutorial”

  1. Arsalan says:

    Great tutorial bro! Actually I have my exam for Foundations of Software Engineering next week… this helped a lot!

  2. santosh says:

    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.

    • admin says:

      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

  3. David R. says:

    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!

    • admin says:

      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

  4. Sno says:

    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.

    • admin says:

      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 🙂

  5. brumley gap says:

    What UML software are you using? I couldn’t catch the name. And is it available for Linux?

  6. sauchem says:

    You are the grand master! masters do things look very easy.

  7. Steven says:

    Which software are you using to draw the diagram ? Thanks

  8. Tomaz says:

    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 !

  9. Amardeep says:

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

    Thanks for sharing.

  10. Anonymous says:

    Thank You! This is really good.

  11. Pooja says:

    Thank You. This is really good

  12. Pooja says:

    Thank You. This is really good. Love your teaching style.

  13. 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

    • Derek Banas says:

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

  14. I have a question here, theCoinegame create a coin, but why not it is created a players also ?

    • Derek Banas says:

      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

  15. George says:

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

  16. Ramesh says:

    I love your videos. You are doing a very noble service to those of us who are learning.

  17. Gehan says:

    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?(

    • Derek Banas says:

      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.

  18. Alex Taylor says:

    Yes! I watched the whole thing. Thanks for your tutorials and site. Very awesome of you!

  19. Raj says:

    Great tutorial. You are awesome dude. You make learning fun.

  20. Scooter says:

    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!

  21. Satyajit says:

    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.

    • Derek Banas says:

      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.

  22. Anonymous says:

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

  23. Mukesh Pawar says:

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

  24. ij says:

    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?

    • Derek Banas says:

      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.

  25. Naveen says:

    This is very informative tutorial, you explained very well about the OOD.
    Thanks Derek for sharing it.

  26. Marcelo says:

    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,

    • Derek Banas says:

      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 🙂

  27. Rohit Kumar says:

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

  28. Abid says:

    Very very nice work Derek. Thanks man you are great. Keep the good work going on. I appreciate your help.

  29. Joseph Dunston says:

    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!!

Leave a Reply

Your email address will not be published.