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

Пікірлер: 113

  • @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

    10 ай бұрын

    😊

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

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

  • @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!

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

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

  • @FredBwalya-ge5fr
    @FredBwalya-ge5fr4 күн бұрын

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

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

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

  • @BashithaShamila
    @BashithaShamilaАй бұрын

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

  • @_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~

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

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

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

    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.

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

    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

    2 жыл бұрын

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

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

    Super explanation with the much needed humor!

  • @geekific

    @geekific

    2 жыл бұрын

    Glad it helped!

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

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

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

    Really amazing job with the explanation!

  • @geekific

    @geekific

    3 жыл бұрын

    Thank you! Glad it helped!

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

    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.

  • @MuhammadUsmanQasim-es8fm
    @MuhammadUsmanQasim-es8fm11 ай бұрын

    You're a life saver bro 🙌

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

    you are really doing a good job here .

  • @geekific

    @geekific

    3 жыл бұрын

    Thanks a lot! Glad it was helpful!

  • @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?

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

    This is gold.

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

    keep going , perfect explanation, thanks a lot

  • @geekific

    @geekific

    2 жыл бұрын

    Thanks, will do! Glad it was helpful :)

  • @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

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

    Thank you so much, very clear explanation

  • @geekific

    @geekific

    2 жыл бұрын

    Glad you liked it :)

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

    wow literally wonderful

  • @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 :)

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

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

  • @geekific

    @geekific

    2 жыл бұрын

    Thanks a lot! Glad you liked it :)

  • @doriansmith5667
    @doriansmith566711 ай бұрын

    Thank you. Blessings

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

    nice explanation!

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

    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

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

    Great! Thank you so much

  • @geekific

    @geekific

    2 жыл бұрын

    Glad you liked it :)

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

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

  • @geekific

    @geekific

    10 ай бұрын

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

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

    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.

  • @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 :)

  • @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!

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

    nice one

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

    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

    3 ай бұрын

    I also noticed, small mistake

  • @geekific

    @geekific

    Ай бұрын

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

  • @yasukunijinjatoilet

    @yasukunijinjatoilet

    Ай бұрын

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

  • @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!

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

    Thank you so much!

  • @geekific

    @geekific

    2 жыл бұрын

    No worries! Glad it helped :)

  • @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 :)

  • @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

  • @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!

  • @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
    @oleksandrsmyrnov829510 ай бұрын

    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

    10 ай бұрын

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

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

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

  • @geekific

    @geekific

    Ай бұрын

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

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

    nice video sir, thanks

  • @geekific

    @geekific

    2 жыл бұрын

    Glad I could help!

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

    Cool, man.

  • @geekific

    @geekific

    2 жыл бұрын

    Thanks!

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

    magnifique

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

    great thank u

  • @geekific

    @geekific

    2 жыл бұрын

    Thanks! You're welcome :)

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

    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

    7 ай бұрын

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

  • @KizilBoss

    @KizilBoss

    7 ай бұрын

    @@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

  • @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

  • @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!

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

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

  • @geekific

    @geekific

    7 ай бұрын

    Because you create objects based on implementations and not abstractions!

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

    Thank you

  • @geekific

    @geekific

    2 жыл бұрын

    My pleasure :)

  • @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!

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

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

  • @geekific

    @geekific

    10 ай бұрын

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

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

    How can bank account exist if there is no customer?

  • @geekific

    @geekific

    10 ай бұрын

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

  • @IsaacC20
    @IsaacC20Ай бұрын

    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))"

  • @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
    @mhmdsha3ban9693 ай бұрын

    are you Lebanese bro?

  • @geekific

    @geekific

    3 ай бұрын

    Yup