Derek, You do a very good job explaining things in many of your videos. I appreciate the effort you put into your videos as many folks are not as skilled as you explaining things so well. Please keep up the good work.. I also find some of the critical/ negative commenters, very annoying so please don't let them discourage you from the good work you do.
I'm extremely happy to hear that :) I always thought UML should be taught first. I can't think of anything more important for a programmer to understand. I have been really surprised as of late by how it seems to be getting ignored in many universities. That really confuses me? I'm very happy i could clear it up. I continue covering it in an applied manor in Object Oriented Design.
GOLD at last !!!!!!!!!!!!!!!!!!!!!!!!!!!! Jefe eventualmente mi perseverancia dio sus frutos, esperamos seguir siendo el estudiante más ferviente de los suyos. Dios bendiga a esta empresa.
La perseverancia dio sus frutos con seguridad. Estoy sorprendido por la inteligencia de mi comunidad. Cubro algunas cosas bastante complicado y estoy sorprendido de que usted es capaz de tomar en esta cantidad de información. Gracias por su atención :)
Wow amazing video. I'm 3/4 through my masters in Systems Engineering and learned about half a class in 17 minutes. Thanks for the component explanation, I hadn't seen that and found it extremely helpful.
''I also find some of the critical/ negative commenters, very annoying so please don't let them discourage you from the good work you do'' He is completely right, I started watching your videos without any knowledge, I didn't even know the meaning of UML. Next month I have to buy a UML book for my studies and on the discription I've read something about Use Case Diagram, Activity Diagram. I thought hey know I know what that means! Thanks to Derek and thank you for sharing your knowledge Derek.
Derek, I have met your channel during an exam phase some terms ago and until now you have helped me to keep my sh.t together with my chaotic Informatics minor. I couldn't thank you enough, please keep up the good work!
The amazing thing is that I constantly get offered consulting work because of UML. I have made it a habit to always ask why the company thinks I would benefit the job. The answer they all give is that the junior programmers find it very easy to work off of my sequence diagrams :)
Very very good explained tutorial, this component diagram is used a LOT by sw automotive engineers, especially based on AUTOSAR development. Principally it involves loosing the coupling between components and have a great simplification on standalone components what handles huge ammounts of data provided by various sensors inside ECU's.
At 4:15 you're saying that arrow shows the data flow direction. Component LanguageTranslator "requires" interface LangIn and component on the left (I will call it Left) "provides" this interface. LanguageTranslator can depend on this interface in only one scenario - when LanguageTranslator calls methods of LangIn, meaning that data flow direction is from LanguageTranslator to the Left, but on video it is the opposite. Is it your mistake on the video (arrow from left to right) or is there a mistake in my conclusion? Thanks.
You're right. Moreover, this component does not need a left interface at all. For some mysterious reason, the author believes that interface on the the "right" (provided) is an output, and "left" (required) is input. Completely not. "Required" means component itself calls some outer operations. And when the interface is "provided", it means that someone calls one of the operations of the interface and receives an output. I.e. gives a sentence in one language and receives a translation in another. An operation of this (provided) interface might look like: Translate(Sentence: string, LanguageIn: language, LanguageOut: language) Why this component needs a left interface is a mystery to me. Anyway, left interface contains operation "languageIn", hence it is also "provided". And both arrows shoud be pointed from "half circle" to "full circle", in any circumstances. From "required" to "provided", always. I think this video is a mess. Interfaces are not holes for data flowing from one side to another
Hello Derek, your videos are awesome ! contribution that you are providing to our field is immense. I believe you have got values out of it "all our best wishes" and "big thanks". we should find a way to spread your contributions wide and loud so that all students of our field get most out of it. your videos are well explained worth becoming complement of academic lectures. we should find a keyword sth like "open source" as used in the domain of sharing source codes freely and honor you.
really enjoyed this tutorial, i learned a lot, still useful after 6 years (also i had lo-fi hip hop as background music and your voice was in perfec sync with the music) pd:Sorry if my english is not the best.
Regarding composite structures, the multiplicity between Description and Picture in the Product class. It's all fine in class diagrams. But in composition diagrams the use of mulitplicity in both the boxes and on the relationship lines creates a mess. A 1:1 correspondence is clearly incorrect. Derek touches upon this at 13:00 and suggests putting 1..3 as a qualifier for the association. If you do that while keeping 1..3 as multiplicity for Picture, it can have the confusing effect that you start thinking about having 1 to 3 of something that itself has 1 to 3 of...wait a minute...itself? Huh? Easy solution - just as relationships in class diagrams work - would be to not put multiplicity into the boxes at all and rather just state them on the relationship line. But that's sort of the feature of composite structure diagrams, I guess, so...it's ugly. Maybe the real solution is to interpret Picture as a collection of Picture containing 1 to 3 pictures and then map that one to exactly one description. Perhaps that's how it's specified. Only way I could personally live with it.
Component inside a component. You said that we can call it instead (although we do not have to), but in the definition book, it is written as . Calling it a subclass seems odd to me, since we already use this term in analysis and design class diagrams. So should it be subsystem or subclass?
I'm guessing you are referring to ports with Component Diagrams. What you'll find as you learn more about object oriented design, is that certain diagrams work better for you than others. I personally can do anything with a use case, sequence diagram and class diagram. Ports are just there to connect the parts of the component diagram.
Hello Derek, in your tutorial, I am confused about the realization symbol between inside class and component (around 5m22s). In my understanding, the realization symbol have the empty triangle arrow with straight line, but in your video I see that it's slashed dot with normal arrow symbol. Could you please help me clear about the usage about these?
Hello Derek, a component diagram is usually at a higher level than classes and programming language(java interfaces). so how do we get chance to define relations between interface and component?
Hello Derek, I am not getting what a component mean, at source code level.Generally, an application is comprised of multiple java packages. This application is designed as package(java) by feature. Can I say, each component is a java package?
Ethashamuddin Mohammed Component diagrams are normally only used for large projects. They show a view of a large system and how the components interact. There is very little detail involved.
Hello Derek, One practical question, after UML designing for a complex system, why developers get into situations like at coding stage, one has to go back and update UML diagrams?
You're a great teacher and this helps me better understand UML, but I still have the same impression of UML as I did back in 2000, when I first came across it. I do not see how to map much of it to actual software. I think this is because of the attempt to make it "universal". A lot of these models are difficult to map to a complete and coherent code listing. The class diagrams and activity diagrams are possible exceptions, but they really are just restatements of tools previously developed. (Classes and flowcharts have been around for a while.) What would really be helpful is a demonstration of the development and mapping of these different models to code. Or, maybe some of them are not intended to map to code? I dunno. As a programmer, UML still seems to me like something that could have been useful, but really isn't. The fact that it's still around tells me that a lot of people do think it's useful, so I'm obviously missing something.
I once thought exactly the same as you, but now I couldn't imagine not using sequence diagrams. I use them for everything. I show you exactly what you asked for in this tutorial www.newthinktank.com/videos/object-oriented-design-video-tutorial/ i hope it helps :)
Derek Banas Yep, watched all 11 episodes. Amazing. I now know how to use UML, at least in part, to develop a design and map it to code. Why does everybody else make it so freaking hard? They talk about it like it's differential equations when it's just algebra. I can do algebra. :)
Is there a way to get a larger resolution file of the cheat sheet? The resolution is so tiny that I can't read it. Thank you for your time, if you can help me with this I'll buy you a cup of coffee.
hi! i loved your tutorials! u are a really good at explaining this things! :D i have a question 4 u, do you have like some resolved excersices about modeling all this diagrams so i can practice,??
Wale Aguilar Thank you :) I have another tutorial that goes into detail on using UML called object oriented design. Sorry, but I don't have any exercises.
Hello, first i want to thank you for your awesome tutorial. Now i understand how component communicate with eachother by a interface. But how can i build a simple example in Java with this? For example when i have two component and i want to ask some data from the other component by a interface, how can i program this? Regards, Bram
I much appreciate your work but I have some feedback. I know this is a 7 years old video and not sure if you still upload or not but You kinda throw everything constantly in the video without leveling up the content, I mean for someone who doesn't know how to draw components diagrams i was overwhelmed while watching this video and got the feeling this is a complicated diagram because you started with showing too many ways to visualize it instead of focusing on one way to represent it and later on you can show other ways of representing it (leveling up, making sure the listener grasps the idea then give more information). The same goes with the rest of the video and your other UML videos I don't particularly mean the first minutes of this one, You start the videos with too much intensive content. I just get the feeling the content is too hard or not simplified enough or too many details was used in the video, this probably goes after repeating the video for 3 or 4 times which, considering the video is long, is too much.
Sorry about the speed. I tend to make videos that can either be used as a review or that are meant to be paused through. I know that doesn't work for everyone, but it is how I try to be different since most everyone else makes slow videos for beginners.
I can't believe, that the best explanation I've found on the internet is from 2012. Thank you, Derek :)
It makes me very happy that you guys like them :) That is all the thanks I need. Thank you for the kind words
Derek,
You do a very good job explaining things in many of your videos. I appreciate the effort you put into your videos as many folks are not as skilled as you explaining things so well. Please keep up the good work.. I also find some of the critical/ negative commenters, very annoying so please don't let them discourage you from the good work you do.
+J Dub Thank you for the nice compliments :) I greatly appreciate them.
I'm extremely happy to hear that :) I always thought UML should be taught first. I can't think of anything more important for a programmer to understand. I have been really surprised as of late by how it seems to be getting ignored in many universities. That really confuses me? I'm very happy i could clear it up. I continue covering it in an applied manor in Object Oriented Design.
We started learning uml in our 3rd semester in software engineering, right after we had software development 1 and 2 in semester 1 and 2.
GOLD at last !!!!!!!!!!!!!!!!!!!!!!!!!!!!
Jefe eventualmente mi perseverancia dio sus frutos, esperamos seguir siendo el estudiante más ferviente de los suyos.
Dios bendiga a esta empresa.
La perseverancia dio sus frutos con seguridad. Estoy sorprendido por la inteligencia de mi comunidad. Cubro algunas cosas bastante complicado y estoy sorprendido de que usted es capaz de tomar en esta cantidad de información. Gracias por su atención :)
Wow amazing video. I'm 3/4 through my masters in Systems Engineering and learned about half a class in 17 minutes. Thanks for the component explanation, I hadn't seen that and found it extremely helpful.
Thank you very much :) I'm glad i could help.
''I also find some of the critical/ negative commenters, very annoying so please don't let them discourage you from the good work you do'' He is completely right, I started watching your videos without any knowledge, I didn't even know the meaning of UML. Next month I have to buy a UML book for my studies and on the discription I've read something about Use Case Diagram, Activity Diagram. I thought hey know I know what that means! Thanks to Derek and thank you for sharing your knowledge Derek.
Derek, I have met your channel during an exam phase some terms ago and until now you have helped me to keep my sh.t together with my chaotic Informatics minor. I couldn't thank you enough, please keep up the good work!
Thank you :) It has been my pleasure to be of help
you made this a long ago , and still helpful for my University ! Thank you
Thank you :) Happy I could help
The amazing thing is that I constantly get offered consulting work because of UML. I have made it a habit to always ask why the company thinks I would benefit the job. The answer they all give is that the junior programmers find it very easy to work off of my sequence diagrams :)
ego
you are an angel ! engineer like me would be doomed if we don't get to learn from teachers like you
I'm happy I could be of help :)
You're very welcome Ron :)
Very very good explained tutorial, this component diagram is used a LOT by sw automotive engineers, especially based on AUTOSAR development. Principally it involves loosing the coupling between components and have a great simplification on standalone components what handles huge ammounts of data provided by various sensors inside ECU's.
I'm glad you liked it and thank you for sharing :)
At 4:15 you're saying that arrow shows the data flow direction. Component LanguageTranslator "requires" interface LangIn and component on the left (I will call it Left) "provides" this interface.
LanguageTranslator can depend on this interface in only one scenario - when LanguageTranslator calls methods of LangIn, meaning that data flow direction is from LanguageTranslator to the Left, but on video it is the opposite.
Is it your mistake on the video (arrow from left to right) or is there a mistake in my conclusion?
Thanks.
You're right. Moreover, this component does not need a left interface at all. For some mysterious reason, the author believes that interface on the the "right" (provided) is an output, and "left" (required) is input.
Completely not.
"Required" means component itself calls some outer operations.
And when the interface is "provided", it means that someone calls one of the operations of the interface and receives an output.
I.e. gives a sentence in one language and receives a translation in another.
An operation of this (provided) interface might look like:
Translate(Sentence: string, LanguageIn: language, LanguageOut: language)
Why this component needs a left interface is a mystery to me.
Anyway, left interface contains operation "languageIn", hence it is also "provided". And both arrows shoud be pointed from "half circle" to "full circle", in any circumstances. From "required" to "provided", always.
I think this video is a mess.
Interfaces are not holes for data flowing from one side to another
I forgot this but thanks to you i could remember , thanks a lot, you saved me!
Thank you :) I'm happy I could help
Hello Derek, your videos are awesome ! contribution that you are providing to our field is immense. I believe you have got values out of it "all our best wishes" and "big thanks". we should find a way to spread your contributions wide and loud so that all students of our field get most out of it. your videos are well explained worth becoming complement of academic lectures. we should find a keyword sth like "open source" as used in the domain of sharing source codes freely and honor you.
I’m taking a software architecture class and this is still useful
really enjoyed this tutorial, i learned a lot, still useful after 6 years (also i had lo-fi hip hop as background music and your voice was in perfec sync with the music)
pd:Sorry if my english is not the best.
That's funny :) I'm happy you liked it. Your English is great by the way
You saved us in Software En course
Happy I could help :)
15:33 Is the arrow's direction inside the port between the Product class and the Updatabale interface correct?
Really helpful video, was really struggling.
I'm happy I could help :)
Regarding composite structures, the multiplicity between Description and Picture in the Product class. It's all fine in class diagrams. But in composition diagrams the use of mulitplicity in both the boxes and on the relationship lines creates a mess.
A 1:1 correspondence is clearly incorrect. Derek touches upon this at 13:00 and suggests putting 1..3 as a qualifier for the association. If you do that while keeping 1..3 as multiplicity for Picture, it can have the confusing effect that you start thinking about having 1 to 3 of something that itself has 1 to 3 of...wait a minute...itself? Huh?
Easy solution - just as relationships in class diagrams work - would be to not put multiplicity into the boxes at all and rather just state them on the relationship line. But that's sort of the feature of composite structure diagrams, I guess, so...it's ugly. Maybe the real solution is to interpret Picture as a collection of Picture containing 1 to 3 pictures and then map that one to exactly one description. Perhaps that's how it's specified. Only way I could personally live with it.
The university that I graduated should hire you at any price
I'll take the job then :)
Component inside a component. You said that we can call it instead (although we do not have to), but in the definition book, it is written as . Calling it a subclass seems odd to me, since we already use this term in analysis and design class diagrams. So should it be subsystem or subclass?
I'm guessing you are referring to ports with Component Diagrams. What you'll find as you learn more about object oriented design, is that certain diagrams work better for you than others. I personally can do anything with a use case, sequence diagram and class diagram. Ports are just there to connect the parts of the component diagram.
Your Content is AMAZING!!! Thank you very much
Thank you very much :) I'm happy to be of help
Umlet works on every OS and it is free
Hello Derek, in your tutorial, I am confused about the realization symbol between inside class and component (around 5m22s). In my understanding, the realization symbol have the empty triangle arrow with straight line, but in your video I see that it's slashed dot with normal arrow symbol. Could you please help me clear about the usage about these?
If a requirement is user input does this come from a component, or can you have the semi-circles with nothing attached to them?
Hello Derek, a component diagram is usually at a higher level than classes and programming language(java interfaces). so how do we get chance to define relations between interface and component?
Ethashamuddin Mohammed This diagram may help www.uml-diagrams.org/component-diagrams.html
Hello Derek, I am not getting what a component mean, at source code level.Generally, an application is comprised of multiple java packages. This application is designed as package(java) by feature. Can I say, each component is a java package?
Ethashamuddin Mohammed Component diagrams are normally only used for large projects. They show a view of a large system and how the components interact. There is very little detail involved.
Hello Derek, One practical question, after UML designing for a complex system, why developers get into situations like at coding stage, one has to go back and update UML diagrams?
Ethashamuddin Mohammed Projects change constantly during the development process. Unforeseen issues come up and the client decides to make changes.
Hello Derek, Are we taking a case study in OOD video series about component diagrams?
Ethashamuddin Mohammed I only use use case descriptions, class diagrams and sequence diagrams
You're a great teacher and this helps me better understand UML, but I still have the same impression of UML as I did back in 2000, when I first came across it. I do not see how to map much of it to actual software. I think this is because of the attempt to make it "universal". A lot of these models are difficult to map to a complete and coherent code listing. The class diagrams and activity diagrams are possible exceptions, but they really are just restatements of tools previously developed. (Classes and flowcharts have been around for a while.) What would really be helpful is a demonstration of the development and mapping of these different models to code. Or, maybe some of them are not intended to map to code? I dunno. As a programmer, UML still seems to me like something that could have been useful, but really isn't. The fact that it's still around tells me that a lot of people do think it's useful, so I'm obviously missing something.
I once thought exactly the same as you, but now I couldn't imagine not using sequence diagrams. I use them for everything.
I show you exactly what you asked for in this tutorial www.newthinktank.com/videos/object-oriented-design-video-tutorial/
i hope it helps :)
Derek Banas Yep, watched all 11 episodes. Amazing. I now know how to use UML, at least in part, to develop a design and map it to code. Why does everybody else make it so freaking hard? They talk about it like it's differential equations when it's just algebra. I can do algebra. :)
Very precise!. Can you please let me know the UML tool used?
Thank you :) I'm using UMLet, which is free and runs on any OS
It's very clearly understand 👍
Generally, an application is recommended to be package(java) by feature. Can I say, each component is a java package?
So when you have the 2 languages german and spanish, are there other languages you can choose or is that all provided?
I'm sorry I don't understand the question
Je vais voir ce que je peux faire. Je n'ai que l'accès à la version communautaire si
Is there a way to get a larger resolution file of the cheat sheet? The resolution is so tiny that I can't read it. Thank you for your time, if you can help me with this I'll buy you a cup of coffee.
Try clicking it 3 times on my website. Tell me if that doesn't work
Worked like a charm, many many thanks sir!
what tool did you use to draw all these diagrams?
UMLet which is free and here www.umlet.com/
Could you please do a Package Diagram video?
Hi, super tutorial, i learned much. but.......
I dont understand about ports, like code of them.
Thank you so much
hi! i loved your tutorials! u are a really good at explaining this things! :D i have a question 4 u, do you have like some resolved excersices about modeling all this diagrams so i can practice,??
Wale Aguilar Thank you :) I have another tutorial that goes into detail on using UML called object oriented design. Sorry, but I don't have any exercises.
Can someone post a link to all the examples given, in this video and series as well.
Links to everything are here www.newthinktank.com/videos/uml-video-tutorial/
LEGEND!
Hello, first i want to thank you for your awesome tutorial.
Now i understand how component communicate with eachother by a interface.
But how can i build a simple example in Java with this?
For example when i have two component and i want to ask some data from the other component by a interface, how can i program this?
Regards,
Bram
+Bram Reinold You're very welcome :) In my object oriented design tutorial I bridge the gap between UML and Java. i hope it helps.
Great, thanks!
Cheers,
Ron
thanks a lot. keep up the good work.
Thank you :) I'm happy it helped
how are components designed
Very Good, thank You Derek
Thank you :) I'm happy it helped
It's so good..thnxxx alot..
I think I might actually be in love with you
You're very kind :)
Monsieur vous êtes très généreux dans l'éloge.
Peut-on avoir JASPER RAPPORTS tutoriel?
really helpful, thank you
Thank you :)
thank you it is a great video.
+Waqar Detho You're very welcome :)
Just perfect. Thanks.
Thank you :)
Derek, vous parlez français?
oui
You are awesome :)
Thank you very much :)
amazing thank you so much
Thank-you
I much appreciate your work but I have some feedback. I know this is a 7 years old video and not sure if you still upload or not but You kinda throw everything constantly in the video without leveling up the content, I mean for someone who doesn't know how to draw components diagrams i was overwhelmed while watching this video and got the feeling this is a complicated diagram because you started with showing too many ways to visualize it instead of focusing on one way to represent it and later on you can show other ways of representing it (leveling up, making sure the listener grasps the idea then give more information). The same goes with the rest of the video and your other UML videos I don't particularly mean the first minutes of this one, You start the videos with too much intensive content. I just get the feeling the content is too hard or not simplified enough or too many details was used in the video, this probably goes after repeating the video for 3 or 4 times which, considering the video is long, is too much.
This is btw from a CS student. I'm not sure if You're targeting them or this is just for software engineers.
Sorry about the speed. I tend to make videos that can either be used as a review or that are meant to be paused through. I know that doesn't work for everyone, but it is how I try to be different since most everyone else makes slow videos for beginners.
Merci
bro thank you
I'm happy to help :)
Ok, nice video, but this Elvis-style narrating is not the best. :-)
That's funny :)