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.
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 :)
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 :)
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.
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!
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.
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 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.
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.
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?
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. :)
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
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 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, 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, 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?
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.
9 лет назад
Hi, super tutorial, i learned much. but....... I dont understand about ports, like code of them. Thank you so much
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.
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.
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.