
Hi, I am Felix, your instructor. I use this lesson to quickly introduce myself.
This is an overview about the contents of this video course on UML Class Diagrams.
If you are interested in this course or are just starting, this is the best point to begin. I will talk about the course structure, contents and learning objectives.
PDF summary to read along or as a cheat sheet for later.
Modeling tasks to practice on your own.
The UML 2.0 consists of 14 types of diagrams, which can be divided into seven structural diagrams and seven behavior diagrams.
In this video I give you an overview on all of these diagrams. We look at areas of application and use examples. This should give you a better context about class diagrams and their meaning for modeling with UML.
This video shows you a first example class diagram in detail. If you do not understand everything, this is perfectly fine. The aim of this lesson is for you to have seen the various components of UML class diagrams. We will discuss each and every one of those in much more detail in the next two sections.
This is an overview about the section "Basic Concepts - Your First Class Diagrams".
This lesson teaches you about the syntax of classes. You get to know what you can model in a class and how you do it.
I explain the three main fields of a class object to you: the class name, the attribute list and the method list.
UML class diagrams come with four visibilities for attributes and methods to restrict which other classes can see the respective attribute or method. You learn about the differences between public, private, protected and package and when to use each.
Inheritance is one of the key concepts in object oriented programming. Abstract classes and interfaces are very important to build hierarchies. This lesson is a bonus information for anyone who is not that familiar with inheritance.
It does not focus as much on UML class diagrams, but still gives you some more information on how to use abstract classes and interfaces in your diagrams.
In this video, I show you different kinds of relations that you can use in UML class diagrams like inheritance relations, interface realizations or associations.
Using multiplicities you can model how many objects of one class take part in a relation. This lesson teaches you how this is done and informs you about the most commonly used multiplicities.
This is an overview about the section "Advanced Concepts - Enhance Your Diagrams".
This lesson teaches you about further information to append to relations like role names or an association name. I also discuss how to navigate through a class diagram from one class to a target class.
Composition and Aggregation are special kinds of relations that model a relation of the type "is a part of". You learn about when and how to use these two kinds of relations.
There are different ways to create qualified associations in UML class diagrams. I present these to you and explain what qualified associations are and why to use them.
An enumeration is a special type of class in which a finite set of elements can be enumerated. In this lesson we discuss the standard stereotype "Enumeration".
Stereotypes are a way to enhance your class diagrams in your project. There are standard stereotypes, but UML also provides you the opportunity to create your own stereotypes. This video explains the concept of stereotypes and what you need to pay attention to when you use stereotypes.
In this second, more complex example I create a class diagram based on a description of a software. You can follow me, try it yourself or even come up with additional requirements to model as an exercise.
This is an overview about the section "Design Patterns - Reuse Generic Solutions".
The Factory pattern is used when you need to distinguish between multiple variants of an object during its creation.
The Singleton pattern can be used when you need to ensure that at most one instance of your class exists at a time.
The Composite pattern is used to model part-whole relations and hierarchies.
You use the Adapter pattern (also called Wrapper) when one interface needs to be adapted to a desired interface to enable communication between interfaces that were previously not compatible.
The Decorator pattern is helpful if you need to add further properties to one generic class.
Sometimes the direct access of an object is problematic. If this is the case, you can use the Proxy pattern.
In the Command pattern multiple requests of a client are collected in a single more complex object. It can also be used for queuing or undoing operations.
The Observer pattern can be benefitial is several objects are interested in the status changes of another object.
Using the Iterator pattern you can sequentially iterate an aggregated structure like a list and access its elements without revealing its data structure to the outside.
The Facade pattern provides a simple interface to a very complex subsystem that is reduced to the most important functions.
This is an overview about the section "Code Generation - From Diagram to Code".
You learn how to generate code for classes. This includes how to set the class name, declare variables and method heads. We will not cover how to implement special methods that might be part of your class diagram. You can use this lesson as a guideline when you implement a class diagram manually.
You learn how to generate code for relations. For relations you need to keep track of multiplicities, navigation directions and more. You can use this lesson as a guideline when you implement a class diagram manually.
This lesson summarizes the contents of this video course. It is a review of the more than thirty videos for you to recognize how much you have learned about UML class diagrams in the previous five sections.
UML Class Diagrams
[Remark: This course contains manually created/timed captions in English and German. Feel free to use this feature to follow along the course contents. Deaf and hearing impaired people as well as people whose second language is English (or German) can follow this course without any problems.]
Anyone who deals with UML can hardly get around class diagrams. They are a popular tool in software modeling and probably the most widely used UML diagram. You can model classes and relations between your classes to gradually build up complete software systems. Class diagrams help you communicate your modeling approaches and present your software to your clients. They are a great tool to talk about software and what needs to be done to fulfill given requirements.
In this course I will teach you a lot about UML class diagrams. Keep in mind, that this is not a UML complete course. I will focus on UML class diagrams completely. You will not only learn how to read and understand these diagrams, but also how to model them yourself. After this course you have everything you need to understand complex foreign class diagrams, model software systems elegantly yourself or together with your team and even present them to your clients. Of course, everything I teach requires some practice. In this course we work with a lot of examples! This course consists of six sections:
Introduction
This is the introduction to the course. You will get to know how the course is structured, get access to additional learning material and we directly start with an overview of UML diagrams and a first exemplary class diagram.
Basic Concepts
In this section we will deal with basic concepts of class diagrams. You will get to know different kinds of classes and relations. After this section you will already be able to read and understand easy class diagrams and even model some small examples yourselves!
Advanced Concepts
In this section we deal with more complex examples and concepts. We will still talk about classes and relations, but you will get information on advanced concepts to further improve your diagrams and model even more precise.
Design Patterns
This section explains the area of application and syntax of one design pattern per video. A design pattern is a part of a class diagram made for reuse. You will learn valuable information on how and when to use each of these design patterns to enhance your class diagrams with proven solutions.
Code Generation
How do you even write code from a class diagram? In this section I will explain to you what you need to implement for classes, attributes, methods and the different types of relations. You will see that it is even possible to generate such code automatically.
The End
In this last video I recap what you have learned in the course. Congratulations on coming this far!