UML Class and Object Diagrams | Association vs. Aggregation vs. Composition | Geekific

Support us on Patreon: / geekific
GitHub Repository: github.com/geekific-official/...
Stay updated on our videos by subscribing to the channel and hitting the like button!
Class diagrams and object diagrams are the main focus of this video. Additionally, while going over the basic concepts of class diagrams we attempt to cover and define: association, aggregation and composition.
Correction: At the very end (9:20) in Object Diagrams, the direction of the arrow between the Account and its Sub-Accounts should be exactly the way it was in Class Diagrams. Sorry about that!
Timestamps:
00:00 Introduction
01:08 Class Diagrams
02:15 Class Diagrams and Inheritance
03:02 Class Diagrams and Association
04:44 Class Diagrams and Aggregation
05:34 Class Diagrams and Composition
06:44 Association Example
08:11 Object Diagrams
09:30 Thanks for Watching!
If you found this video helpful, check other Geekific uploads:
- Object-Oriented Programming Fundamentals: • What is Object-Oriente...
- Time and Space Complexity Simplified (Big-O Notation): • Introduction to Big-O ...
- Must Know Java Keywords!: • Must Know Java Keyword...
- Association, Aggregation and Composition Explained: • UML Class and Object D...
- Generics and Wildcards in Java Made Simple: • Generics and Wildcards...
- Functional Interfaces and Lambda Expressions in Java: • Functional Interfaces ...
- Java Streams Explained with Examples: • Java Stream API Explai...
- Use-Case and Sequence Diagrams: • UML Use-Case and Seque...
#Geekific #ObjectOriented #UML #ClassDiagram #ObjectDiagram

Пікірлер: 115

  • @josuehernandez2784
    @josuehernandez2784 Жыл бұрын

    I honestly believe that everyone having troubles to understand relationships should watch this video. It helped me a lot! Thank you

  • @shikhaagrawal3779

    @shikhaagrawal3779

    11 ай бұрын

    😊

  • @4thehood
    @4thehood23 сағат бұрын

    This is really helpful video to understand the difference between the relationships of classes. Watched so many videos before this one, but this is the best match!! MUST WATCH!!!

  • @musabansari8607
    @musabansari86074 ай бұрын

    Maybe the best content on this topic in the entire youtube. Very Comprehensive Video. Thanks Geekific.

  • @flpflpflp
    @flpflpflp Жыл бұрын

    Thank you for taking the time to record this. It was really helpful.

  • @zladtv1456
    @zladtv14566 ай бұрын

    I have been trying to understand where to use associations by watching tutorials for an hour and 10' now. Finally I understand. Thank you!

  • @nickpratt9338
    @nickpratt9338 Жыл бұрын

    Best explanation I've heard on this topic. I don't think ever really understood it until now.

  • @_rtdp_
    @_rtdp_ Жыл бұрын

    This is the only video lecture where I clearly understood class relations 😭😭😭... Thank you very much ❤️❤️❤️

  • @dddd-ci2zm
    @dddd-ci2zm Жыл бұрын

    Excellent! This is the best description of the arrows~

  • @BashithaShamila
    @BashithaShamila2 ай бұрын

    you have the best teaching skill among the youtubers i've watched , keep it up bro ....!

  • @swarnas2313
    @swarnas2313 Жыл бұрын

    Wonderful explanation 😄. Keep producing more of these content with us 💟

  • @raywong9832
    @raywong983210 ай бұрын

    The video clearly explained how the association relationship evolved into aggregation and association relationships, and the drawing of the symbols, and the difference between class and object relationships. I watched many videos before and read a lot of articles, but each time I got more confusion as I watch/read, very frustrated. finally, I got it all figured out. To make your video more complete, it would be nice if you could add some real code along with the video. After all we want to code. Thank you.

  • @vengateshm2122
    @vengateshm21223 жыл бұрын

    10 minutes of effective knowledge. Thanks to you and KZread algo for bringing your videos to me which keeps me updated with these information.

  • @geekific

    @geekific

    3 жыл бұрын

    So nice of you! It's my pleasure man :)

  • @kzvlogs7186
    @kzvlogs718611 ай бұрын

    Thank you for explaining so clearly.😊

  • @sadam_khan
    @sadam_khan Жыл бұрын

    Like trump says, it was the best of the best tut on this topic. Finally grasp the concept with clarity.

  • @FredBwalya-ge5fr
    @FredBwalya-ge5frАй бұрын

    Very helpful video. I watched it once and got the concept.

  • @trilecao9014
    @trilecao901411 ай бұрын

    Thank you so much. It helps me have a clear understanding about relationships.

  • @MuhammadUsmanQasim-es8fm
    @MuhammadUsmanQasim-es8fm Жыл бұрын

    You're a life saver bro 🙌

  • @romankost8828
    @romankost88282 жыл бұрын

    Super explanation with the much needed humor!

  • @geekific

    @geekific

    2 жыл бұрын

    Glad it helped!

  • @stephenkiss4614
    @stephenkiss46142 жыл бұрын

    Great content! Are the composition associations from the SavingsAccount to the SubAcnt backwards? I thought the filled in diamond node at the end of the association was supposed to be connected to the more generalized container

  • @geekific

    @geekific

    2 жыл бұрын

    Thanks :) Ohh, at the very end in Object Diagrams, it's direction should be exactly the way it was while explaining Class Diagrams. Kudos to you, well done

  • @braineedly7543

    @braineedly7543

    2 жыл бұрын

    7:50 How on earth Customer have relation and knowing when Bank Event without have anything about Bank Event?

  • @Manojshankaraj
    @Manojshankaraj3 жыл бұрын

    Really amazing job with the explanation!

  • @geekific

    @geekific

    3 жыл бұрын

    Thank you! Glad it helped!

  • @willft520
    @willft5202 жыл бұрын

    On the last example at 9:09, there's a mistake on the relationship between the SubAcnt and the SavingAccount objects as the SubAcnt objects appear containing the SavingsAccount object, but it should be the other way around, with the filled diamond on the SavingsAccount side.

  • @geekific

    @geekific

    2 жыл бұрын

    Yup, thanks for sticking till the end! Was mentioned multiple times in the comments :)

  • @willft520

    @willft520

    2 жыл бұрын

    @@geekific Thanks for the reply and, of course, for the content of your video! I like very much the way you explain things! Sorry I wasn't careful enough to check if there was any comment on that error, I did a quick search and didn't see anything about that loaded on the top comments at least so I decided to leave that message. I've been researching this topic lately, I've learned a lot and redefined many concepts I thought I understood already.

  • @geekific

    @geekific

    2 жыл бұрын

    I am so happy you found our videos helpful :) On the contrary thanks for mentioning it, you're helping a lot :D

  • @asiframzan437
    @asiframzan4376 ай бұрын

    This is an amazing explanation, and the result is that I'm able to highlight a mistake in the Object Diagram when aggregating SavingsAccount to SubAcnt. In fact, the diamond shape must be towards SavingsAccount because this SavingsAccount is a container for SubAcnt, just like Customer, which is a container for BankAccount. Regards

  • @abhilashpatel6852
    @abhilashpatel685211 ай бұрын

    This is gold.

  • @saadfarraj5656
    @saadfarraj56563 жыл бұрын

    you are really doing a good job here .

  • @geekific

    @geekific

    3 жыл бұрын

    Thanks a lot! Glad it was helpful!

  • @sarthakgiri4596
    @sarthakgiri4596 Жыл бұрын

    wow literally wonderful

  • @mohammeds6314
    @mohammeds63142 жыл бұрын

    keep going , perfect explanation, thanks a lot

  • @geekific

    @geekific

    2 жыл бұрын

    Thanks, will do! Glad it was helpful :)

  • @dikshyantauprety4020
    @dikshyantauprety40202 жыл бұрын

    Thank you so much, very clear explanation

  • @geekific

    @geekific

    2 жыл бұрын

    Glad you liked it :)

  • @dukkanchocolate7754
    @dukkanchocolate77542 жыл бұрын

    ياعم انت جامد ياعم♥️ Thank you

  • @geekific

    @geekific

    2 жыл бұрын

    Thanks a lot! Glad you liked it :)

  • @doriansmith5667
    @doriansmith5667 Жыл бұрын

    Thank you. Blessings

  • @mahrou616
    @mahrou616 Жыл бұрын

    nice explanation!

  • @ashrafalz7599
    @ashrafalz75992 жыл бұрын

    u just helped me to pass my test.....thanks alot !!!

  • @geekific

    @geekific

    2 жыл бұрын

    Glad I could help! All the best :)

  • @scarlettefoxx5585
    @scarlettefoxx55852 жыл бұрын

    Thanks for helping me with my software technology program

  • @geekific

    @geekific

    2 жыл бұрын

    Glad I could help :)

  • @SrinivasNirvana
    @SrinivasNirvana3 ай бұрын

    I have a different opinion that except inheritance others like association aggregation and composition talks about object relationship. Where Inheritance is all about relationship between classes.

  • @andreilauran7513
    @andreilauran75132 жыл бұрын

    Hi, cool video. I have one question tho: shouldn't it be a dependency relationship between Customer and BankAccount instead of an association one?

  • @geekific

    @geekific

    2 жыл бұрын

    Thanks! Can you please elaborate? It is already set as an aggregation in the video.

  • @andreilauran7513

    @andreilauran7513

    2 жыл бұрын

    Oh sorry, i meant BankEvent, not BankAccount.. didn't notice

  • @habibdeleonbanos8196
    @habibdeleonbanos81962 жыл бұрын

    Great! Thank you so much

  • @geekific

    @geekific

    2 жыл бұрын

    Glad you liked it :)

  • @krzysztofskibniewski5608
    @krzysztofskibniewski5608 Жыл бұрын

    Great video 👍, it explained a lot to me, but I miss converting UML to code to see what the code looks like digested with such a diagram.

  • @geekific

    @geekific

    Жыл бұрын

    Thanks! Great idea, will try to cover it in an upcoming video :)

  • @yogeshkumargupta265
    @yogeshkumargupta265 Жыл бұрын

    I learnt about a dotted line notation with open arrow at the end, which denotes dependency. I am unable to understand what is the difference between dependency and association. Like, With your example, Customer class has a method for subscribing to BankEvent. So Customer has an association with BankEvent, at the same time, Customer is dependent on BankEvent. Isn't that always the case????

  • @geekific

    @geekific

    Жыл бұрын

    Good question! A class is associated with another whether it has it as an attribute / property or no. If it is an attribute, then it either falls under aggregation or composition as explained in the video, if not (if it is only used as a method parameter or return type etc.) then it is a dependency. Hope this helps :)

  • @ug_it_english
    @ug_it_english2 жыл бұрын

    very helpful for concepts on UML class and object diagram. I wonder how to represent method in object diagram, kind of value of method!

  • @geekific

    @geekific

    2 жыл бұрын

    Glad it was helpful!

  • @Aughadi
    @Aughadi12 күн бұрын

    By hierarchical relationship sub class can not exist without super class it is same as composite aggregation ???

  • @ahmedkhaled8825
    @ahmedkhaled88253 ай бұрын

    nice one

  • @desboom7890
    @desboom7890 Жыл бұрын

    Great video. I have a question regarding aggregation. So how do we determine the place of the "diamond symbol"?. If the diamond is placed at the "customer class", does it mean that a customer has a bankaccount or a bankaccount has a customer? It is probably a bad example here since both things are possible...

  • @geekific

    @geekific

    Жыл бұрын

    Thanks! The "diamond symbol" is usually placed on the container class. Hope this answers it!

  • @desboom7890

    @desboom7890

    Жыл бұрын

    @@geekific yeah. Thanks!

  • @oleksandrsmyrnov8295
    @oleksandrsmyrnov829511 ай бұрын

    Thanks for the video. But regarding that association between BankEvent and Customer. Point is why did you decide to relate BankEvent to the Customer at all? I would create a Bank - class and relate it to the Bank (as a composition, cause event can't exist without a bank).. For me the question of necessity of having an "association" option remains unclear. Could you make maybe another example where havng "association" in unavoidable?

  • @geekific

    @geekific

    11 ай бұрын

    Thanks for the feedback, well received! We will try to answer these concerns in future videos. Stay Tuned!

  • @anderskristoffersen3270
    @anderskristoffersen327011 ай бұрын

    Why do the diamond arrows point in different directions in classes (6:30 min) and objects (9:20 min)?

  • @geekific

    @geekific

    11 ай бұрын

    Are you referring to the "correction" mentioned in the description?

  • @ollysalanson9452
    @ollysalanson94522 жыл бұрын

    Thank you so much!

  • @geekific

    @geekific

    2 жыл бұрын

    No worries! Glad it helped :)

  • @kendellferguson5021
    @kendellferguson50212 жыл бұрын

    my university lecturer is great but you really helped me understand this more

  • @geekific

    @geekific

    2 жыл бұрын

    Glad I could help! :)

  • @sultanahmadsabawoon6030

    @sultanahmadsabawoon6030

    2 жыл бұрын

    You're one of the very few people who admired the university lecturer along with the channel. That's nice!

  • @yasukunijinjatoilet
    @yasukunijinjatoilet4 ай бұрын

    I believe there is something wrong with the object diagram show case appers at 9:26 regarding to the relationship directions between subaccounts and bandaccounts.

  • @aulerleandro

    @aulerleandro

    4 ай бұрын

    I also noticed, small mistake

  • @geekific

    @geekific

    2 ай бұрын

    Yes! It is noted in the description, sorry about that.

  • @yasukunijinjatoilet

    @yasukunijinjatoilet

    2 ай бұрын

    @@geekific Nice. Thanks for the well designed tutorial!👍

  • @williamaditama1352
    @williamaditama13524 ай бұрын

    In the last object diagram, aren't the composition arrows inverted?

  • @geekific

    @geekific

    2 ай бұрын

    Yes! It is noted in the description, sorry about that.

  • @zsoltfehervari625
    @zsoltfehervari6252 жыл бұрын

    The direction between subaccount and account is different in the two models...isn't it?

  • @geekific

    @geekific

    2 жыл бұрын

    Yes it is, in the object diagram it is switched, I can't fix the video but because it is not the first comment addressing this, I will add it as a note in the description :) Cheers!

  • @mehdi-vl5nn
    @mehdi-vl5nn2 жыл бұрын

    perfect explanation

  • @geekific

    @geekific

    2 жыл бұрын

    Glad you think so!

  • @mehdi-vl5nn

    @mehdi-vl5nn

    2 жыл бұрын

    ​ @Geekific on second thought about the last example, is not right eventually we have to break down many -to -many to one- to -many and we need a middle table

  • @geekific

    @geekific

    2 жыл бұрын

    @@mehdi-vl5nn You are thinking about it from a DB perspective! But to answer your question, the relation between the middle table and each entity in this case will be one to many, but what about the two outer entities linked via the linking table? it is still a many to many, and that is what we are trying to explain here:) Hope this helps! Cheers!

  • @user-yd9xy3rb4x
    @user-yd9xy3rb4x2 жыл бұрын

    Cool, man.

  • @geekific

    @geekific

    2 жыл бұрын

    Thanks!

  • @braineedly7543
    @braineedly75432 жыл бұрын

    7:50 How on earth Customer have relation and knowing when Bank Event without have anything about Bank Event?

  • @geekific

    @geekific

    2 жыл бұрын

    There is a relation between the two as action is being taken by the Customer when provided with an Event, so, it does know stuff about the event and act upon them but it is not storing these event, it is not a *container* for these events and hence it is not an Aggregation, that was the whole point :) Hope this answers your question!

  • @besz.1218
    @besz.1218 Жыл бұрын

    magnifique

  • @sipintarpatrick
    @sipintarpatrick2 жыл бұрын

    nice video sir, thanks

  • @geekific

    @geekific

    2 жыл бұрын

    Glad I could help!

  • @sanjusk4287
    @sanjusk42872 жыл бұрын

    great thank u

  • @geekific

    @geekific

    2 жыл бұрын

    Thanks! You're welcome :)

  • @saweranabi7786
    @saweranabi77862 жыл бұрын

    Thank you

  • @geekific

    @geekific

    2 жыл бұрын

    My pleasure :)

  • @KizilBoss
    @KizilBoss8 ай бұрын

    Thank you for the great video. I am struggling with the banccount class and the subclasses. As you did the object diagram there was no bank account obejects only savingaccoubt and milesaccount object. Is backaccount an interface or abstraxt class? Customer has a list of Bankaccoubt how it will work with saving accounts and milesaccount because its not the same type. I am honest great uml explanation but i am confused af 😢. Can you explain it? I would love it if you could explain whrn to use inheritance or Interface? Thank u Update: ok, Bankaccoubt is an abstraxt class so we can create instance of the the inplementation as Saving Account and Milesaccount. Can we use only base and subclasses instead of interface and implementing classes? Plz do an video 😵‍💫 I am for the first time really confused.

  • @geekific

    @geekific

    8 ай бұрын

    Can you please clarify as to what is the confusing part exactly? Is it the difference between abstractions and interfaces?

  • @KizilBoss

    @KizilBoss

    8 ай бұрын

    @@geekific yes, thats the first Question, second is what if we use only inheritance for bankaccoubt and the subclasses? Will it work? If not what is the scenario of using inheritance and not abstraction? Thanks

  • @sakshamchhabra1175
    @sakshamchhabra117511 ай бұрын

    How can bank account exist if there is no customer?

  • @geekific

    @geekific

    11 ай бұрын

    You are thinking about it from a real-world perspective, in the video we are doing this from an implementation / a technical perspective.

  • @kbpmowrya
    @kbpmowrya Жыл бұрын

    Seems direction of subAccount direction might be pointed opposite in the Object daigram. Please correct me if i am wrong

  • @geekific

    @geekific

    Жыл бұрын

    Mentioned in the description!

  • @kbpmowrya

    @kbpmowrya

    Жыл бұрын

    @@geekific Thanks

  • @IsaacC20
    @IsaacC202 ай бұрын

    Multiplicity wasn't explained very well. Allow me to clarify: The multiplicity attached to each class indicates how many instances of that class can be aggregated-by/composed-by/associated-with a *single* object of the other class. For example, the relationship @4:53 says two things: (1) "0...N BankAccount(s) can be aggregated by each single Customer object" and (2) "There is exactly 1 Customer object for each single BankAccount object". Similarly, @7:23 (1) "0...N BankEvent is associated with a single Customer object (i.e., a Customer can attend 0 or more BankEvents)" and (2) "0...N Customer is associated with a single BankEvent (i.e., Each BankEvent can have 0 or more Customer(s))"

  • @user-dd1io8zj5e
    @user-dd1io8zj5e8 ай бұрын

    When Object diagram is formed, where is Bank aount lass is gone? WHY is it not there in Objet Diagram

  • @geekific

    @geekific

    8 ай бұрын

    Because you create objects based on implementations and not abstractions!

  • @azurtle
    @azurtle11 ай бұрын

    shouldn't the object diagram at 9:18 be bankAcc: milesAccount not milesAcc : milesAccount?

  • @geekific

    @geekific

    11 ай бұрын

    Thanks for pointing that out! This was actually mentioned as part of the description! Cheers :)

  • @zezo928
    @zezo9282 жыл бұрын

    In many to many association do we need to Define a new class?

  • @geekific

    @geekific

    2 жыл бұрын

    Hello :) Am not sure I really got your question, can you please rephrase it? Sorry.

  • @vikasa6331
    @vikasa63312 жыл бұрын

    Tooo much confusing honestly .....

  • @geekific

    @geekific

    2 жыл бұрын

    Sorry to read that :/ I'll be more than happy to answer any question you may have in the comments section :) Do you mind pointing which parts/topics specifically were confusing to you so we may improve it in future videos? Thanks for your feedback :) Cheers!

  • @mhmdsha3ban969
    @mhmdsha3ban9694 ай бұрын

    are you Lebanese bro?

  • @geekific

    @geekific

    4 ай бұрын

    Yup