Object Oriented Analysis, Design & Programming with UML (Udemy.com)
Learn OO Analysis, Design & Programming using UML in C++, Java & C#
Created by: Umar Lone
Last updated June 2025
Our take
Based on the ratings of 1,072 students, a sample of their written reviews and the syllabus, as the course stood in June 2025. No course pays to be reviewed.
Umar Lone's course teaches object-oriented analysis and design through UML, then turns the diagrams into code. It starts with requirements and use cases, moves through class design, and builds a text game called Reckless Driver in Java, C# and C++. It runs about 10.5 hours over 127 lectures, and the syllabus gives big blocks of time to interaction diagrams and state machines. It suits people who can already program a little and want the modelling side.
Reviewers like how clearly each concept is explained and how the diagrams map to real code. One developer with nearly 20 years of experience said it helped them brush up before a safety-critical design job. Others call the pace quick and efficient. The complaints are steady, though. Repeating the same example in three languages feels padded to some, the game gets tiresome midway, and one reviewer found late coding videos sped up and hard to follow. Another reviewer found mistakes in the lamp state machine example, and a third wanted more UML tools than StarUML.
About 880 of the 1,072 ratings are four or five stars, and the average is 4.3. The last update was June 2025, so it is not stale, though a 2022 reviewer called it outdated. It is a good pick if you want UML connected to code, and viewers can skip the languages they do not use. Anyone after theory depth should look elsewhere.
Pros
- Diagrams are mapped to real Java, C# and C++ code, which reviewers say finally made UML click
- Covers use case, class, interaction and state machine diagrams, with about 4 hours on the last two
- Explanations are clear and the pace is quick, so little time is wasted
- One game project runs from requirements to implementation, so the whole process is visible
Cons
- The same example is repeated in three languages, which some reviewers found padded and repetitive
- Only StarUML is shown, and a reviewer wanted other diagramming tools covered
- Some examples have errors, such as the lamp state machine, and late coding videos get sped up
Great course ideal for beginners to experienced covers all UML diagrams with good explanations and demonstrations
Labeled all levels, but it assumes some programming in one language, and C++ viewers need pointers and arrays.
What you will learn
- Understand & use UML with your software development process
- Understand what is object oriented analysis, design & programming
- Understand how to analyze a problem using object oriented analysis
- Implement OO design in Java, C++ & C#
Course content
9 sections · 127 lectures · 11 hours of video 5 articles
- 1Introduction 2 free previews6 lectures · 7 min
- 2Basics 4 free previews4 lectures · 31 min
- 3Object Oriented Analysis 1 free preview14 lectures · 1.2 hours
- 4Object Oriented Design & Programming 6 free previews27 lectures · 2 hours
- 5Reckless Driver Implementation16 lectures · 1.2 hours
- 6Interaction Diagrams21 lectures · 2.2 hours
- 7State Machine Diagram24 lectures · 2.1 hours
- 8Refactoring7 lectures · 34 min
- 9More UML Diagrams8 lectures · 36 min
Who it is for
The instructor says it suits
- Programmers who want to learn the Unified Modelling Language
- Anyone who wants to learn OO analysis, design & programming
- Anyone who wants to start with OO programming in C++, Java or C#
- Students who want to understand the concepts of object oriented programming
- Programmers new to object oriented programming
- Software developers and designers looking to expand their existing knowledge of object oriented analysis & design
- Anyone who wants to learn & apply UML to their sofware development process
What you need before you start
- Basic knowledge of any programming language
- Basic understanding of common C concepts like pointers, functions, arrays, macros, etc (for C++ programmers only)
How it compares
Against the other 1,182 rated Udemy courses in IT & Software on CourseDuck:
- Rating4.3 out of 5higher than 20% of them
- Reviews1,072#375 of 1,183 by number of reviews
- Length10.5 hourslonger than 72% of them
- Last updatedJune 2025more recently than 50% of them
Course Description
Object Oriented Analysis, Design & Programming course is a unique course that teaches students how to use object-oriented techniques to build software. The course will start with requirements gathering & end with implementation. In the process, you'll learn how to analyze and design classes, their relationships to each other in order to build a model of the problem domain. You'll also use common UML diagrams throughout this process, such as use-case, class, activity & other diagrams. The diagrams will be created through a free tool.
Lot of emphasis is placed on use cases to capture and manage requirements. Those are subsequently used to enforce OO concepts that produce a reusable design of the system that adapts to change. Finally, the design is implemented & programmed in three different programming languages - Java, C# & C++. During the implementation, you'll learn about the object-oriented concepts such as Abstraction, Encapsulation, Hierarchy, Polymorphism, interfaces, etc. All these concepts are explained with examples in all the three languages.
Finally, all the important concepts are applied in a textual game called Reckless Driver. Consequently, you'll have understood the entire process of Object Oriented Analysis, Design & Programming & you can implement these concepts in your own software.
Instructor Details
- 4.3 Rating
1,072 Reviews
Umar Lone
Civil engineer who found his calling in software development. Never worked as a Civil engineer, jumped at the first chance and started worked in C++ & Visual C++ two decades ago. He used to teach these technologies on the side and enjoyed it so much, he switched completely to training delivery. Currently, trains software professionals in software companies in different technologies, such as Modern C++, Advanced C++, STL, Design Patterns, Android, Unity, Linux, etc. Very passionate about teaching and has trained more than 100,000 software professionals in a teaching career spanning more than two decades. An avid gamer, currently trying his hand with game development in Unity & Unreal. Has a few Android games & applications to his credit, including one on Design Patterns.
Only thing he likes more than C++ is Modern C++.
More courses by Umar Lone
Debugging C/C++ Memory Issues in Visual Studio (2025)
4.3 (593 Reviews)
Provider: Udemy
Time: 7.9h
$74.99
More IT & Software courses
D3.js Data Visualization Fundamentals - Hands On (2026)
4.9 (3,917 Reviews)
Provider: Udemy
Time: 4.6h
$49.99
Hands-On Training: Streaming Data with Apache Kafka on Azure (2025)
4.9 (103 Reviews)
Provider: Udemy
Time: 3.7h
$10.99
Oracle Grid Infrastructure and RAC using Oracle Database 19c (2026)
4.8 (2,499 Reviews)
Provider: Udemy
Time: 8.7h
$19.99
PowerShell Scripting & Automation: The Complete Hands-On (2026)
4.8 (1,750 Reviews)
Provider: Udemy
Time: 9.6h
$11.99
AWS EC2 Crash Course + Load Balancing with Demos and PDFs (2025)
4.8 (866 Reviews)
Provider: Udemy
Time: 3.7h
$19.99
Reviews
By Jose Zamorano on 12/24/2022
The course is really well crafted from the definition of the game, the design and the implementation through code making the steps clear and showing how the design can be converted into Code. Also provides great detail regarding The Finite State Machine with an interesting example and the corresponding implementation in the game, demonstrating why state machine identification is important in programming. This is the best course on Object Oriented Analysis, Design and Programming that I found so far.
By Phil Reeves on 10/26/2022
I've not quite finished the course yet, but have covered all the UML parts, and found it very interesting and useful. I'm a software developer of nearly 20 years, and although I've frequently used OOA, OOD and modelling tools including UML, I've mostly been self-taught or simply picked things up by osmosis. I've recently been tasked with design work for a safety-critical project, so I thought it was time for an actual course to brush up on my understanding and learn the 'right' way to do some of the stuff I've so far been mostly making up as I go along. It's been very helpful. Not least to find that there is mostly a 'right way' to use UML. Seeing the implementations in different languages was not really required for me, but it was interesting to have a direct comparison. (And to be reminded how opaque C++ is compared to the others!) Compared to other courses I've tried, this was definitely more comprehensive, understandable and approachable. Thanks!
By Shailajatuppad@gmail.com on 9/19/2022
It is one of the best classes that one can take to understand the basic pillars of object oriented programming. Amazing examples, great command on language and cover all the important topics. Thank you very much!
By Anonymized User on 9/3/2022
I had little to no experience with UML before taking this course, so this was a fantastic way to get a crash course on UML. I learned object-oriented programming four years ago very briefly when I learned Python, but I only learned about it for a month or so and never used it since then. Thus, this was a great way to learn more about this and the specifics of how objects are implemented in Java and C++. Since it seems that I do not have to use C# and since I never learned that specific language, I skipped the C# examples. I watched the videos for both the Java and C++ examples at first, but I stopped watching the Java videos since the code was fairly similar aside from the differences between the two languages. It was definitely helpful to do this at first so that I could compare how OOP is implemented between the two, and giving students the freedom to choose between three languages, depending on their needs or preferences, was a great idea. All of the topics were explained very well. I learned a lot from following along with the code examples and the UML diagrams.
By Daniel Skibinski on 11/13/2021
Very good therethical introduction to the subject. Good practical examples using a free uml tool. However, the things that could be imporoved about is the fast phased speaking. I also whish for a bettet introduction to the uml tool. The online docs are not the best. All in all, very interesting course !
By Darren Lillywhite on 11/16/2020
Yes it a good refresher of how programming changed from Algorithmic decomposition to OOP where it is today. I have seen old software that is based on Algorithmic decomposition and basically impossible to understand or adapt to new requirements. The material is good enough for a beginner and the examples are relevant. I recommend it as a good i9ntroduction course.
By Swapnil Pathak on 10/12/2020
He explained everything which is needed for working in software company!
By Adam Clayton on 9/25/2020
Great course, learning alot!!
By Mauricio Balden on 9/16/2020
hasta el momento todo bien
By Cesar Tapias Gomez on 9/1/2020
gran curso, facil y practico
By Kshitij Porwal on 8/27/2020
The course contents and the instructor both are great..
By Lina Cadavid Lenis on 8/24/2020
bueno
Quality Score
No CourseDuck member has rated this course yet. Taken it? Give each part a thumbs up or down.
Overall Score : 86 / 100








