UML 2.0 Class Diagrams
Vložit
- čas přidán 7. 07. 2024
- ►► Get my New C++ Programming Bootcamp Series for $9.99 ( Expires May 6th ) : bit.ly/NewCCourse
►► Over 20 Hrs + 52 Videos + Quizzes + Graded Assignments + New Videos Every Week
MY UDEMY COURSES ARE 87.5% OFF TIL July 16th ($9.99)
www.udemy.com/
➡️ Python Data Science Series for $9.99 : Highest Rated & Largest Python Udemy Course + 56 Hrs + 200 Videos + Data Science bit.ly/Master_Python_35
➡️ New C++ Programming Bootcamp Series for $9.99 : Over 23 Hrs + 53 Videos + Quizzes + Graded Assignments + New Videos Every Month bit.ly/C_Course_35
I LIVESTREAM CODE HERE : / derekbanas
MY DISCORD : / discord ( Contact Me Anytime )
Welcome to my UML 2.0 Class Diagrams tutorial. Class diagrams describe classes and how they relate to each other.
I'll not only cover class diagrams, but I'll also cover abstraction, encapsulation, visibility, multiplicity, dependence, inheritance, constraints, OCL and more.
As an added benefit, because the concept is so simple, I'll also cover Object Diagrams in this tutorial. I hope you find it useful.
Guys, for aggregation and composition think of it this way
Aggregation(empty rectangle): If a dog breed goes extinct, dogs don't go extinct.
Composition(filled rectangle): If dogs go extinct, the dog breed also goes extinct.
+Dedokire *Very nicely put!*
*Thanks!!*
Reworded in a more lengthy fashion:
Aggregation: The 'Dog' contains a multitude (aggregation) of 'Breeds'; therefore, if a 'Breed' disappears, the 'Dog' remains.
Composition: Each 'Breed' is made up of (composed of) 'Dog'; therefore, if 'Dogs' disappear, 'Breeds' can no longer exist.
sorry to be so off topic but does anyone know a trick to log back into an Instagram account..?
I somehow lost the account password. I appreciate any assistance you can offer me!
@Israel Bryce Instablaster :)
Since Dog is a (sub-)class implementing and inheriting methods from the abstract Animal class, the arrow should be on the other side (see video at 14:05)
yea! i noticed too!
This is must be reverse.
@@romazahrypa Yup, he needs to fix that.
You're very welcome :) An Association occurs when a class contains a reference to another class "Has a". An Aggregation and a Composition are both Associations, but are more complex Associations. An Aggregation occurs when a class contains another class and the contained class can exist without the container class. A Composition ("Part of") also has a class that contains another. The only difference is that the contained can't exist without the container. I hope that helps
The association arrows are almost always pointed at the containing object. I cover that later in this series because as you pointed out I should have done it that way. A Composition Association (Filled Diamond) is one in which if the container is destroyed so is the contained object. Aggregations (Empty Diamond) is one in which if the container is destroyed the contained lives on. Composition - "Part of" Aggregation - "Owns a"
From your explanation of Aggregation & Composition, I think you got the notations wrong. Composition should be the filled diamond while Aggregation is the empty diamond. But you used them in the reverse.
okeyxyz Sorry about that error. You are correct.
+Derek Banas
you should create an annotation to let people know about that mistake. Luckily I saw this comment, but others might not see it. Anyways thanks a lot for this video.
+Derek Banas You made one more error. The arrow should be pointing on to the abstract class Animal and not the subclass as it is presented in the video. The "Dog "class inherits from the "Animal" abstract class - not the other way round.
Yeah same here jeez
Yeah you're right with your point
Learnt more in five minutes from you than a 3 hour lecture at college :-)
+Geordi La Forge Thank you for the compliment :) I'm glad I could help.
+Geordi La Forge video is 16 mins dammit watch till end
well he must have learned 9 hours worth then xD
Thank you very much for the compliment :) I think because I aim to satisfy people that enjoy fast videos that I stand apart from many of the other tutorial people. I'm very happy that you enjoy them. Yes, I have over 500 videos on my CZcams channel. Some of the old ones are terrible, but I do my best to always improve.
Thank you very much :) I'm extremely happy to be able to help people all over the world. Your nice comment is very much appreciated!
That is really up to you and your team. In the real world i normally always used simple class diagrams and verbose sequence diagrams and never had any trouble. Normally new programmers either create overly complex UML diagrams or don't understand them at all. You will normally be at the mercy of the systems architect were you are hired. i hope that helps :)
On occasion I make typos. I'm glad you liked the video regardless :)
Thank you :) I do my best to make everything understandable. I have one more video on the syntax of UML and then I'll get into using them in real world applications
I have seen that presented in both ways. In the real world unlike in books there are very few iron class rules. I for example always preferred to ignore most all diagrams except for sequence diagrams which I made very detailed. I never had a boss tell me what I was doing was wrong. As an architect at the time, all of the programmers under me loved working with me.
This tutorial covers the UML 2.0 specification exactly. I do however know what you are referring to. Also, most people don't use the exact spec all of the time in the real world. As you'll see when you get to sequence diagrams I don't either :)
I'll have to take a look. Thanks for pointing that out
Thank you :) I do my best to put as much information into each video as possible.
Thank you :) You are correct it is omitting it normally means that it doesn't matter
thanks derek, i remember watching these at uni, but i come back again every couple years to watch when i need to use uml at work
You could do voice acting. You have a great voice for this type of thing.
+shootingblueyes Thank you for the nice compliment :)
The presentation software I use is called keynote
I'm glad you found it useful. You're very welcome :)
thank you :) I didn't know if anyone would like these tutorials, but it is hard to teach oo design and refactoring without uml
Thank you for these. I am finding myself thrown into a OOA&D class with no real previous knowledge and you are thorough and do not skip "obvious" stuff like other videos do. Obvious comes with experience and these are perfect for me as a beginnger.
Thank you :) Happy I could help
Basically you need to create a use case description that goes over everything in exact detail. Then break everything into objects. Students, admins, email, everything becomes an object if it is an object in the real world. Then translate the use case description into a sequence diagram. You have the objects and the interactions, so you just have to connect them. My object oriented design tutorial shows you everything step by step. Tell me if you have questions after watching the 1st 2
Thank you very much for the nice message :) Ill cover obj c and iDevice programming after I cover android. I'll cover it with the same detail I did with java
Sorry about that error. I have all the Umlet files available for download on this page newthinktank. com/videos/uml-video-tutorial/
My undergrad is Computer Science and I have studied UML 8 years ago. As a PhD student I couldn't find a better refreshing tutorial than yours. good job.
can you please post your slides so we can take notes on it. That would be great
keep it up
All architects work differently. I personally use sequence diagrams that are heavily commented. I also write very detailed usage descriptions. I make class diagrams, but I don't dwell on them. In the real world I do all of this stuff with paper and pencil. In groups I always work on a whiteboard
I have no words to describe how you change my life with your videos!
Thank you for all your tutorials..I'm not English-Speaker but your explanations are so clear that i understand quickly!
You are correct. I'm sorry if I didn't make that clear. I think I got a bit tongue tied and I went back and revisited association arrows to correct any misunderstanding in the next few tutorials. Thanks for pointing that out :)
With both an Aggregation and a Composition, a class (I'll call it Dog) contains another class object (One is Bark and the other is FavoriteFood).
With an Aggregation, since FavoriteFood could be used by other potential Animal objects (Non Dog Objects) then if the Dog object is destroyed FavoriteFood could continue to exist.
With a Composition, Bark couldn't exist or would have no meaning without the Dog object (Assuming that no other Animals bark) Does that help?
This greatly increases my understanding of UML. It brings to life the definitions I see in books.
Thank you :) I'm very happy it helped
If only everyone had a teacher like you. If only.
Thanks to the CZcams creators for giving people like you an opportunity to teach countless people like me who haven't had a good teacher, and most importantly, thank you!
Thank you for the nice compliment :) I'm very happy to be of help.
Thank you very much :) Ill see if I can post the whole file so you can open it and output in any format tomorrow
Hi Derek, I just wanted to thank you! I have really been struggling with some of the concepts of OOAD and your videos are really helping. Thanks
You're very welcome :) Thank you for taking the time to tell me the videos have helped
Thank you :) Im using UmLet
Thank you :) I edit the videos with iMovie
I just want to thank you for this tutorial service you provide. Currently taking an online community college course with no lectures provided and a very bland textbook; this is helping me immensely!
That's great :) I'm happy that I could help
You're a better teacher than my Object Oriented Development lecturer in uni. Thanks a million!
THANK YOU SO MUCH FOR MAKING ME PASS MY EXAMS SIR. C++, C, java, diagram, i love you so much. keep up with the good work! :D
Thank you :) - is private, # is protected, + is public
I made a little error there. Sorry about that. Yes you should definitely make videos. There are a ton of requests I get that I just don't have time to cover.
Really handy video for getting my head around these concepts, thanks!
You're very welcome :)
The best explanation ever.. Your articulation of voice is amazing and gives more meaning to your words.
Only few people know to talk like this, especially on dry subjects like requirement engineering, process modeling, diagrams etc.
Thank you for the nice compliment :)
Thank you very much :) I do my best
Thank you :) It is very nice of you to say that
Thanks for taking time to put these lessons together. It sure is nice hearing a coherent and native English-speaking instructor, as opposed to an unintelligible thick Indian accent.
Спасибо. Я делаю лучшее, что я могу. Я рад, что вам нравится видео.
Derek... you absolute legend... I salute you sir!
I remember going through your java tutorials over 10-15 years ago as a teen... now I'm a plumber who makes video games at a high level in their spare time lol
I'm sorry, but I just started Android tutorials. I'm having a hard time finding the time to get those out quickly. I promise to cover Obj C as soon as possible. May God bless you as well :)
I check all my CZcams personal messages. The ATM system I designed isn't much different from what you want to design. Instead of passing emails it passes an ATM transaction. Replace PIN number and valid card number with userid and password. They are almost exactly the same
1.)@ 2:10: semantical error: encapsulation is not information hiding. encapsulation is the concept of encapsulating attributes and methods, which are logically dependent, i.e. the methods operate on the attributes.
www.javaworld.com/article/2075271/core-
java/encapsulation-is-not-information-hiding.html
2.)protected elements are also accessible to classes in the same package
Thank you :)
Great video, literally got me going for a project at work, but your soothing voice almost put me asleep here at work too!
Thank you :) Sorry for making you tired
Thank you :) Yes I get tongue tied every once in a while because non of this stuff is scripted. Sorry about that
You're very welcome :) I show on this picture what most of the arrows mean. newthinktank. com/wp-content/uploads/2012/12/UML-Domain-Model. png
I hope that helps clear anything up
The system is all the objects combined. Break everything down into their smallest parts. If it is an object in the real world then make it an object in your use case. Watch my examples and you'll get it. I provide both fast and slow examples
I love your videos and contents ! I am currently going through UML stuffs. I thought if you could make a video on when to use each of these diagrams and how it is useful that would be great !!! Thanks and appreciate all your work :)
Great vids man. Watched theese and the OOAD ones, really helps when for the exam I have in the near future :)!
11:40 points from Dog to Animal (Dog -> Animal), meanwhile 14:20 points from Animal to Dog (Animal -> Dog). This is misguiding.
In the latter the arrow should also point towards animal: Dog -> Animal.
You are just awesome to listen to and learn from. You have a good skill and thank you sir for sharing your knowledge. Kudos to you! Final exam tomorrow *fingers not even crossed, just ready*
+777Jimihendrix Thank you for the compliment :) Best of luck on your exam!
You put me in a total stupor with your Dog and Breen diagram. Composition relationship is drawn with a solid diamond. Just put an annotation at that point and yup, hammered down, everything will be fine. Other than that, good job!
at 14:00 the generalisation (inheritance) arrow goes in the wrong direction.
Peter Kelley Sorry about that error
Your video has cleared much of the concepts I was fearing of. However I anticipate that would be a great service from you and help if you upload objective c programming tutorials. I love your voice pitch and clarity you use to simplify things. If possible plz bring your lectures in detail about OBJECTIVE C programming step by step.
great video! i pretty much took all the notes and took me more than 1 hrs to go through them :)
In my tutorial JAVA VIDEO TUTORIAL 53 I show you how to rotate polygons which include every shape :) I hope that helps
It will be so kind of you if you initiate it not too late. As I am into objective c now a days just a beginner. Right now following lectures from stanford university on youtube but I am sure I will understand much more if you will deliver your lectures. May the CREATOR of all mankind bless your service.
Thanks a lot Derek for these great videos:)
Thanks for the video! Exactly what I was looking for!
You're very welcome :) I'm glad I could help.
you are so good. thank you. concise yet clear
Thank you for the nice compliment :)
Hello Derek
I am taking course On object oriented design from Alberta university (from Canada ) and there is some points are different
1- association is just when object is a parameter to method in other object class and in uml is just line (not doted line as in video)
2- aggregation is different a way from composition in code that aggregation is when u have something like array of the object of other class (and this array may have objects or may null) but in composition the object u use from other class need to be used every time u use this object (that can happen when u declare that object in yr constructor )
Thanks for the input. Yes I messed up the dotted line by accident
@@derekbanas I appreciate so much your reply after 7 years from creating your video
I learnt a lot from yr channel
thanks a lot
Thank you :) I love talking with everyone
You're welcome :)
Hey Derek great video, could you explain the difference between an analysis class and design class please.
Great video man! I'm a CS major and you've really helped me grasp these concepts!
+Jamie Jackson Thank you :) I'm glad I could help
I seem to understand more from your video than my 4 hour-lecture class on Java.
+Randy Mam I'm happy that I could help :)
Taught me more in this video than the lecturer taught me in 1 year
Turkish Gamer I'm glad I could help :)
Great Vids on the UML series making great use of them. In the first 5secs of this vid you sound like Joe Swanson off family guy.
That's funny :) I'm glad you found them useful.
Great tutorial indeed.
Iam brazilian and I've been enjoying all of your tutorials. I hope I learn how to programm as soon
Silvio da silva Thank you :) Hello Brazil!
Diagram at 14:30 says that Animal extends Dog
I believe that you wanted to put it diffeently.
And some slide before you put abstract class Animal below Dog.
It was correct notation, but I believe it's more readable if abstracts are above inherited classes
At 14:53 the arrow between abstract class and inheritance class points to the wrong direction or am I wrong?
No you are right, it seems like it's the opposite ( it's wrong )
Very good tuts, thanks you very very much. Btw, what tool you used when transit from nor slide to another? It looks very cool way
Great Videos!! Very Helpful and well structured.
But, next time you make a playlist, could you number the videos (it helps to find the following video if you are watching it outside the playlist)??
Thanks for all your efforts!!!
Thanks for helping me in my Homework sir, very much appreciated :)
You're very welcome :)
La ringrazio molto! Io cerco di fare del mio meglio.
Great explanation!! Thanks!
Davi Daniel Siepmann Thank you :) You're very welcome
Great video really helpful for my final exam. Thank you so much!
Dai Le Thank you :) Best of luck on your exam.
Don't know if anybody said this already but I think you've got the arrow pointing the other way around on 14:02
Really enjoying your tutorials, btw. Planning on making my own once I feel prepared enough.
fantastic classes. man you are gifted to teach. congrats. one advice, put the number of lecture in the title. I`m just going back and forth to see which one is the next lecture. other than that.. man I wish I had you as my teacher.
Thank you for the nice compliment :) I'll see what I can do about the titles
Joe Swanson is on duty to serve :)
You'll get it next time :)
The composite arrow should be filled and the one with aggregation should be left unfilled. Good clip tough!!!
That helps, thank you very much.
You sir, are the real MVP...
+Mo Gaucho Thank you :) I appreciate that
Very well explained thank you.
Thank you for the compliment :) I'm happy to be of help
Derek, thanks for the great videos. I am a bit confused here by the arrow direction of inheritance and the abstract class diagrams. Shouldn't they be the same (from subclass to super class)? I saw you draw different directions for inheritance and abstract class. Is there any reason behind?
thanks guy, also for the easy to understand speaking
Thank you :)
love it! Thanks alot!
***** Thank you :) You're very welcome