UML and Object-Oriented Design Foundations
4.4 (1,630 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
6,241 students enrolled

UML and Object-Oriented Design Foundations

Get started with Object-Oriented Design and the Unified Modeling Language (UML). Use UML for effective communication!
4.4 (1,630 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
6,241 students enrolled
Last updated 12/2019
English, French [Auto-generated], 2 more
  • German [Auto-generated]
  • Italian [Auto-generated]
Current price: $72.99 Original price: $104.99 Discount: 30% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 1.5 hours on-demand video
  • 5 articles
  • 5 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Assignments
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Learn UML from a leading expert
  • Think as professional software designers
  • Gain a working knowledge of Object-Oriented Design and UML 2.0
  • Communicate more clearly and eliminate misunderstandings
  • Get the companion eBook for FREE! (sells for $28.80 on Amazon)
  • Get ready for technical job interviews
  • Increase your software development productivity
  • Create professional UML diagrams
Course content
Expand all 40 lectures 01:58:05
+ Introduction
3 lectures 04:39

Here's a brief overview of the main topics we're going to discuss.

Preview 03:07

Before starting the course, you should be aware of some prerequisites.

Tools and Prerequisites

Please join our official group to get even more feedback and support!

Join the Official Student Group
+ Software Development Methodologies
4 lectures 12:40

Managing complex projects wouldn't be possible without systems and rules. In this section, we'll talk about two of the most popular methodologies used for developing software systems.

Preview 01:39

Let's take a closer look at the Waterfall model, which is being used successfully in life-control, medical and military systems.

The Waterfall Model

Waterfall may be inflexible in some cases. Luckily, Agile is here to help in such situations. Let's see how.

Agile Frameworks

Has Waterfall become obsolete? Is Agile always the best option? The answer to both questions is "No." 
And here's why.

Waterfall or Agile?
+ Core Object-Orientation Concepts
7 lectures 21:46

Programming is relatively new, yet it evolved a lot during the last few decades. This lecture is a brief walkthrough of the history of programming. 

Brief History of Programming

While structured programming relies on actions, Object-Oriented programming is organized around objects. So, let's talk about objects.

Preview 02:40

OOP is all about objects. But, to create an object, we need to have a class first.


Abstraction is one of the fundamental concepts in Object-Oriented programming. This lesson will clarify the "whys" and "hows".


Encapsulation and data hiding are the other pillars of OOP.

Encapsulation and Data Hiding

Inheritance is a key concept in Object-Oriented Programming. Without inheritance, we’d end up redundant code over and over again.


Polymorphism is the final object-orientation term we need to talk about. In this lesson, we'll also use a coding example to demonstrate how polymorphism works.


Object-orientation skill tests

Test Your Knowledge About Fundamental OO-Concepts
12 questions
+ Object-Oriented Analysis and Design
4 lectures 13:27

How should we start creating an object-oriented system? Is there any recipe for it? In this lecture, I'm going to provide the answer.

Fundamental Object-Oriented Analysis and Design Concepts

The requirements collection or requirements analysis phase paves the road for all the other phases of the object-oriented software design.

Collecting Requirements

Once we gathered the requirements, we can feed them to the next step of the software design process.

Mapping Requirements to Technical Descriptions

Here's why we need a common design language like the Unified Modeling Language.

Why Do We Need a Common Descriptive Language?
+ UML Basics and Fundamental Diagram Types
10 lectures 30:06

The Unified Modeling Language is a graphical notation rather than a textual programming language. In this lecture, we'll see how UML helps us in describing the structure and the functionality of a software system.

Preview 03:17

The use case diagram visualizes the functional requirements of the system. Although it's simple, it's quite powerful. Let's see how it works.

Preview 03:44

In this lecture, we'll delve into class diagrams, the most frequently used UML diagram types. 

Class Diagrams

UML allows us control who can access the attributes and the methods of our classes. This lecture is about visibility.

Visibility: Public, Private, Protected, Package

The next logical step after identifying the key classes in our system is figuring out the relationships between them.
First, we'll talk about associations.


In UML, we use generalization to express that one model element is based on another model element.


In this video, we'll talk about the other UML relationships: dependency, aggregation, composition and realization.

Dependency, Aggregation, Composition and Realization

UML provides dynamic diagrams to represent how objects communicate with each other. The most common dynamic diagram is the sequence diagram.

Sequence Diagrams

The activity diagram is a useful technique to represent behavioral logic.

Activity Diagrams

Statechart diagrams describe the states of an object while identifying the events responsible for the state changes.

Statechart Diagrams

Various quizzes to verify your knowledge about the most frequently used UML diagrams.

Test Your UML Skills
5 questions
+ Case Study: Designing a Note-Taking App from Scratch
7 lectures 30:52

In this lecture, I’m going to illustrate the requirements collection phase through a real example.

Collecting the Requirements

Now that we've got the requirements, let's write some user stories.

Creating User Stories

In this lecture, we’re going to represent our user stories as use case diagrams.

Diagraming the Main Use Cases

Let’s create the static structure of our system. We’ll identify the main classes and the relationships between them.

Modeling the Classes and the Relationships

We'll describe the note creation scenario in the form of a sequence diagram.

Describing the Flow of Note Creation using Sequence Diagrams

The possible states of a note object expressed through a statechart diagram.

Modeling the States of a Note Object

The case study as downloadable PDF.

Text Version & Downloadable PDF Version of the Case Study
+ Ask Karoly - Student Q&A Videos
1 lecture 01:44

I’ve got a question in the Q&A section. The student could not create associations in the use case diagram. So, here’s a quick video showing how to do that.

How to Create Associations in Use Case Diagrams using StarUML
+ Next Steps + Bonuses!
4 lectures 02:51

Closing thoughts.


Useful quick reference guides.

Cheat Sheets

Here's the companion eBook as a special gift to you (129 pages print length, sells for $28.80 on Amazon).

FREE Bonus eBook! (worth $28.80)

I share some links that will get you discounts on my other courses.

BONUS: Huge Discounts on My other Courses & Useful Links
Think about an application you'd like to build. Don't pick something overly complicated. The point is to practice what you learned.
Design an application of your choice
6 questions
  • No prerequisites (we will teach you everything you need to know)
  • A desire to learn
  • Basic programming skills are helpful, but not required

** The best-selling UML and Object-Oriented Design course on Udemy (Updated November 2019) **
Extra Bonus: Free e-book version included!

Explore the fundamental concepts behind modern, object-oriented software design best practices. Learn how to work with UML to approach software development more efficiently.

In this comprehensive course, instructor Károly Nyisztor helps to familiarize you with the fundamentals of object-oriented design and analysis. He introduces each concept using simple terms, avoiding confusing jargon. He focuses on the practical application, using hands-on examples you can use for reference and practice. 

Throughout the course, Károly walks you through several examples to familiarize yourself with software design and UML. Plus, he walks you through a case study to review all the steps of designing a real software system from start to finish.

Topics include:

  • Understanding software development methodologies

  • Choosing the right methodology: Waterfall vs. Agile

  • Fundamental object-Orientation concepts: Abstraction, Polymorphism and more

  • Collecting requirements

  • Mapping requirements to technical descriptions

  • Unified Modeling Language (UML)

  • Use case, class, sequence, activity, and state diagrams

  • Designing a Note-Taking App from scratch

You will acquire professional and technical skills, together with an understanding of object-orientation principles and concepts. After completing this course, you'll be able to understand the inner workings of object-oriented software systems. You will communicate easily and effectively with other developers using object-orientation terms and UML diagrams.


"This was great and helped me crack an interview. Thank you so much!" - Ashutosh Bhokare

"I was looking for a course on UML to refresh my knowledge in UML. My main expectation was a concise course that touched on all the aspects of UML; I am glad to say that this course met and exceeded my expectations." - Faithman Stephen Narte

"Excellent course! It helps me to retrieve some UML concepts that I've forgotten, and I'll apply them in my work with future projects! Thanks a million!" - Ernesto Antonio Rodriguez Acosta

"I am a software development college student and this course helped me A LOT with my studies and tests. The content is clear, essential and to the point. Thank you very much!" - Miriam Wojcik

"Great course, I particularly like the fact that Mr. Nyisztor began with the concepts of OO design outside UML." - Randall Reed

"This course is the best online course I have ever taken." - Syed Aqib

"Good course! Easy to understand and apply. You'll get up and running quickly with UML diagrams." - Panos Filippakos

"I was amazed by the clarity of the explanation of the terminology - pokemon rules ;)" - Adam Rudnicki


  • Expert instructions
    Karoly's been using UML for more than two decades. He designed and developed professional systems, including core components of Siemens Healthcare's syngo image processing system.
    Karoly was one of the senior software architects behind the SAP Cloud Platform SDK for iOS, a framework built by Apple and SAP.

  • Premium support
    As a student of this course, you’ll get personalized attention and support.

  • The companion eBook for FREE!
    The paperback version sells for $28.80 on Amazon

  • Downloadable resources
    You get downloadable UML cheat sheets you can use as quick reference guides.

  • Continuous updates
    We keep enhancing this course to provide fresh and up-to-date content.


If you aren't satisfied with your purchase, we'll refund you your money - no questions asked! We want to make sure you're completely satisfied with the course. That's why we're happy to offer you this money-back guarantee.

Go ahead and click the enroll button. See you in the first lesson!


Károly Nyisztor is a veteran mobile developer and instructor.
He has built several successful iOS apps and games—most of which were featured by Apple—and is the founder at LEAKKA, a software development and tech consulting company. He's worked with companies such as Apple, Siemens, SAP, and Zen Studios.

Currently, he spends most of his days as a professional software engineer and IT architect. Besides, he teaches object-oriented software design, iOS, Swift, Objective-C, and UML. As an instructor, he aims to share his 20+ years of software development expertise and change the lives of students throughout the world. He's passionate about helping people reveal hidden talents and guide them into the world of startups and programming.

You can find his courses and books on all major platforms, including Amazon, Lynda, LinkedIn Learning, Pluralsight, Udemy, and iTunes.

Who this course is for:
  • If you know how to write code but want to design and implement complex applications