UML and Object-Oriented Design Foundations
- Descrição
- Currículo
- FAQ
- Revisões
The best-selling UML and Object-Oriented Design course on Udemy. Companion eBook 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.
This course will help you become familiar with the fundamentals of object-oriented design and analysis*. I’ll introduce each concept using simple terms, avoiding confusing jargon. We’ll focus on the practical application, using hands-on examples you can use for reference and practice.
(*)Many universities across the world require their students to complete this course as part of their Systems Analysis and Design curriculum.
Throughout the course, I’ll walk you through several examples related to software design and UML. Plus, we’ll delve into a case study to review all the steps of designing a real software system from start to finish.
What qualifies me to teach you?
I have more than 25 years of software development expertise. I’ve worked for companies like Apple, Siemens, and SAP.
As a software architect, I have designed and built several enterprise systems and frameworks, including core components of Siemens Healthcare‘s syngo image processing system. I’m one of the senior software architects behind the SAP Cloud Platform SDK for iOS, a framework built by Apple and SAP. I currently hold twelve patents related to inventions in the field of mobile computing.
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.
SUCCESS STORIES – SEE WHAT OTHERS HAVE ACHIEVED
“I highly recommend this course to people at any point in their software design modelling career, especially if you like to be shown how to use something in real life. I also recommend it to anyone who’s thinking of recording a tutorial.” – Colin Hughes
“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
MORE THAN AN ONLINE COURSE. WITH THIS CLASS, YOU ALSO RECEIVE:
-
Expert instructions
As a professional software architect, I’ve been using UML for more than two decades. -
Personalized support
As a student of this course, you’ll get access to the course’s private forum, where I answer questions and provide support if necessary. -
The companion eBook
-
Downloadable resources
You get downloadable UML cheat sheets you can use as quick reference guides. -
Continuous updates
I keep enhancing this course to provide fresh and up-to-date content.
OUR 30-DAY MONEY-BACK GUARANTEE
If you aren’t satisfied with your purchase, we’ll refund you your money. 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!
-
1What’s Covered in this Course?Vídeo Aula
Here's a brief overview of the main topics we're going to discuss.
-
2Tools and PrerequisitesVídeo Aula
Before starting the course, you should be aware of some prerequisites.
-
3Join the Official Student GroupTexto
Please join our official group to get even more feedback and support!
-
4Why You Shouldn't Skip This ModuleVídeo Aula
Managing complex projects wouldn't be possible without systems and rules. In this section, we'll talk about the traditional and the agile approach used for developing software systems.
-
5Waterfall vs. Agile: Software Development ApproachesVídeo Aula
Dive in to understand how choosing the right development process can streamline your project, whether you're working solo or in a team. This video serves as a primer, establishing a clear contrast between Waterfall's structured phases and Agile's flexible, iterative process.
-
6The Waterfall ModelVídeo Aula
Let's take a closer look at the Waterfall model, which is being used successfully in life-control, medical and military systems.
-
7Agile Software DevelopmentVídeo Aula
Waterfall's rigidity doesn't fit every project. Enter Agile, a dynamic alternative for when flexibility is key.
-
8Waterfall or Agile?Vídeo Aula
Has Waterfall become obsolete? Is Agile always the best option? The answer to both questions is "No."
And here's why. -
9How Well Do You Know the Waterfall and Agile Software Development Methodologies?Questionário
-
10A Brief History of ProgrammingVídeo Aula
Although software engineering is a relatively new field, computer programs are present in nearly every aspect of our lives. This lecture is a brief walkthrough of the history of programming.
-
11ObjectsVídeo Aula
While structured programming relies on actions, Object-Oriented programming is organized around objects. So, let's talk about objects.
-
12The ClassVídeo Aula
OOP is all about objects. But, to create an object, we need to have a class first.
-
13AbstractionVídeo Aula
Abstraction is one of the fundamental concepts in Object-Oriented programming. This lesson will clarify the "whys" and "hows".
-
14Encapsulation and Data HidingVídeo Aula
Encapsulation and data hiding are the other pillars of OOP.
-
15InheritanceVídeo Aula
Inheritance is a key concept in Object-Oriented Programming. Without inheritance, we’d end up redundant code over and over again.
-
16PolymorphismVídeo Aula
Polymorphism is the final object-orientation term we discuss. In this lesson, we'll also use a coding example to demonstrate how polymorphism works.
-
17Test Your Knowledge About Fundamental OO-ConceptsQuestionário
Object-orientation skill tests
-
18Fundamental Object-Oriented Analysis and Design ConceptsVídeo Aula
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.
-
19Collecting RequirementsVídeo Aula
The requirements collection or requirements analysis phase paves the road for all the other phases of the object-oriented software design.
-
20Mapping Requirements to Technical DescriptionsVídeo Aula
Once we gathered the requirements, we can feed them to the next step of the software design process.
-
21Why Do We Need a Common Descriptive Language?Vídeo Aula
Here's why we need a common design language like the Unified Modeling Language.
-
22What’s UML?Vídeo Aula
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.
-
23Use Case DiagramsVídeo Aula
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.
-
24Use Case Diagrams: ChallengeVídeo Aula
Let's put what you've learned into action by solving a challenge. Your goal is to draw a use case diagram that provides an overview of an elevator system.
-
25Use Case Diagrams: SolutionVídeo Aula
In this video, I show you how I would approach this challenge.
-
26Class DiagramsVídeo Aula
In this lecture, we'll delve into class diagrams, the most frequently used UML diagram types.
-
27Class Diagrams: ChallengeVídeo Aula
Your goal for this challenge is to create the class diagram of an elevator maintenance robot.
-
28Class Diagrams: SolutionVídeo Aula
Check out my solution for the Elevator Maintenance Robot class diagram.
-
29Visibility: Public, Private, Protected, PackageVídeo Aula
UML allows us control who can access the attributes and the methods of our classes. This lecture is about visibility.
-
30AssociationsVídeo Aula
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. -
31GeneralizationVídeo Aula
In UML, we use generalization to express that one model element is based on another model element.
-
32Dependency, Aggregation, Composition and RealizationVídeo Aula
In this video, we'll talk about the other UML relationships: dependency, aggregation, composition and realization.
-
33Sequence DiagramsVídeo Aula
UML provides dynamic diagrams to represent how objects communicate with each other. The most common dynamic diagram is the sequence diagram.
-
34Activity DiagramsVídeo Aula
The activity diagram is a useful technique to represent behavioral logic.
-
35Statechart DiagramsVídeo Aula
Statechart diagrams describe the states of an object while identifying the events responsible for the state changes.
-
36Test Your UML SkillsQuestionário
Various quizzes to verify your knowledge about the most frequently used UML diagrams.
-
37Practice Makes the MasterVídeo Aula
I firmly believe that the best way to learn is by doing. In this module, I'll walk you through the process of designing a note-taking application. This exercise will allow you to practice the concepts you've learned so far.
-
38Collecting the RequirementsVídeo Aula
In this lecture, I’m going to illustrate the requirements collection phase through a real example.
-
39Mapping Requirements to User StoriesVídeo Aula
Now that we've got the requirements, let's write some user stories.
-
40Diagraming the Main Use CasesVídeo Aula
In this lecture, we’re going to represent our user stories as use case diagrams.
-
41Identifying Classes and Relationships - Epic 1Vídeo Aula
Let’s create the static structure of our system for Epic #1: Note Management. We’ll identify the main classes and their relationships.
-
42Identifying Classes and Relationships - Epic 2 and 3Vídeo Aula
We'll finalize our class diagram by identifying the classes involved in the second and third epics, specifically Security and Cloud Syncing.
-
43Describing the Flow of Note Creation using Sequence DiagramsVídeo Aula
We'll describe the note creation scenario in the form of a sequence diagram.
-
44Activity Diagram: Note Management, Local Storage & Cloud SyncVídeo Aula
Follow along as we create an activity diagram that visualizes the process of creating, saving, and syncing a note to the cloud.
-
45The Note Object’s State DiagramVídeo Aula
Let's visualize the possible states of a note object through a state diagram.
-
46Common Issues in State Machines and How to Fix ThemVídeo Aula
In this video, we’ll explore two critical issues that can arise while crafting your state diagrams and discuss how to resolve them.
-
47Text Version & Downloadable PDF Version of the Case StudyTexto
The case study as downloadable PDF.