A ForkNode is *not* represented as a diamond as specified around 3:20. It is represented as a line-segment, it can be either a horizontal or vertical, as specified in the UML 2.5 SuperStructure specification in Figure 15.29. From UML SuperStructure 2.5 section 15.3.4: " The notation for both ForkNodes and JoinNodes is simply a line segment, as illustrated on the left side of Figure 15.29 (not necessarily in that orientation).When used, however, a ForkNode must have a single incoming ActivityEdge and usually has two or more outgoing ActivityEdges, while a JoinNode usually has two or more incoming ActivityEdges and must have a single outgoing ActivityEdge."
What I'm showing here are the standardized rules for many UML diagrams. In the real world you will sometimes leave out explanations in the simple part of your system, while you'll explain beyond the standard when needed. As this series continues I demonstrate that because I create very detailed sequence diagrams
Thank you :) I do my best to fill in the gaps. It is amazing to me that colleges don't teach this topic. When I first started working for Apple it was a must that I understood Object Oriented Design and how to use UML diagrams.
Thank you very much :) So far the voting is going the Game / Android route but that could change. I may be able to slip in Hibernate or Spring? What are you looking for? Either way I'll cover J2EE after the other tutorial. This is just a vote on which is covered next. It isn't an either or vote
I can't imagine finishing a big project without sequence diagrams. It does seem like more organizations I have dealt with lately are trying to work with just simple usage descriptions. I just go and make my sequence diagrams on my own. Magically I continue to finish my projects while others have been failing at an increasing rate. I get the Ed Helms thing all the time :)
Thank you :) This is technically a Java tutorial as it is a tutorial for all languages. I had to teach UML so I could dive into the complexity that is OO analysis. Then I'll dive in head first for refactoring. After that everything is easy
Eventually you'll find a few diagram tools that work best for you and then use them. I normally write a use case description and then a sequence diagram and that is it. Check out part 1 of my object oriented design tutorial to see what I use in the real world
Derek, I keep shying away from using UML notation, since I keep ending up with hybrid diagrams. Your videos have really helped to clear things up. Many thanks and greatly appreciated.
I normally design all of my logic in a sequence diagram after I complete the usage case. The class diagram is just used to provide an overview of the system. I hope that helps
Hello, I use UMLet. It works on every OS and can either be used as an Eclipse plugin, or on its own. Visual Paradigm is the best in my opinion, but it is also expensive. Most of the time for tutorials and in the real world I use a paper and pencil, or a white board.
This tutorials were what I was always looking for !! Thanks a lot Derek, Coding is not much a big problem for me but I always struggled when I was asked to develop something from scratch, a lot of back and forth development cycles messes the whole project. Now I know how to proceed for new projects from scratch !
I'm very happy that I could help with this. Yes there is a big difference between writing simple programs and large professional ones. I couldn't imagine how I'd make a large application without UML.
I'm looking at these videos for possible use by developers in my company and I noticed something at about 2:40 that I'm not sure is right. Here a diamond is being used to execute activities in parallel however my understanding of the semantics of activity diagrams is that a diamond only produces one "activation token" and so only one of those activities can be executed. Normally there would be guard conditions coming out of the diamond to determine which path is picked. The correct notation for what you are describing would be a solid line which generates multiple activation tokens on exit. The merge should also be a solid line as execution continues when all inputs have triggered. The way you have it execution will continue after only one activity completes.
Silvana Donato See the official specification of UML 2.0 (10 years old and I suppose Derek used 2.0 as a shortcut for 2.x), 12.3.30 on fork nodes (the fat black bars). Those are for concurrent flows. Derek is wrong.
Peter Kelley Yeah, this is all a bit confusing. But looking at the specs it seems that the fat bars are called forks for outgoing lines and joins for incoming. Accordingly, the diamonds are called decisions for outgoing and merges for incoming. So, technically what you called a "merge" should be a "join". Just to avoid confusion. =)
Peter Kelley Yeah, this is all a bit confusing. But looking at the specs it seems that the fat bars are called forks for outgoing lines and joins for incoming. Accordingly, the diamonds are called decisions for outgoing and merges for incoming. So, technically what you called a "merge" should be a "join". Just to avoid confusion. =)
Thanks for all these awesome tutorials :) Instead of having to read a bunch of ppt slides for an exam, I just listened to those tutorials and took some notes and I was done with my diagrams :) Subscribed to your channel. You seem to have many interesting tutorials!
Also at about 4:50 the object node has 2 outgoing flows. I believe that there is a default in this circumstance but I always forget whether it is a fork or a merge. Better to show what happens explicitly.
awesome. 2 follow up Q's: 1. As an engineer, is is crazy to expect business people to provide activity diagrams? (As opposed to "umm.... just make it work by next month") 2. Why do you sound EXACTLY like Ed Helms?
I think the ones who disliked this video are the ones who make videos themselves but got jealous of Derek's videos haha. I just started learning UML Diagrams yesterday and I already learned so much in only two videos.
Hey Derek Banas, Nice video couple of stuff I would like to point out. The merge and fork you are showing is actually junction nodes (however your depiction is correct). Merge and fork actually is a rectangular black thick line, the arrows differentiate which is fork and merge. I use umlet a lot hence I know the differences.
@Peter and Silvana, indeed, I'd use a fork/join for that. But as far as I remember activities after a fork would not be executed necessarily at the same time (as the author states in his example) as the only condition to 'join' after the 'fork' is that all the activities are completed, whenever it is.
I agree this is well put together. Seems like those big tech bibles are mostly self promotion books from what I can see. You have to do a lot of reading before you get into anything useful.
Very helpful, clear, simple and objective explanation (as always).Derek, thank you for help me revise, improve and learn so many important concepts in diverse subjects.
Not to be a putz but at 1:26 you called the fork a merge. No big deal, the kind of mistake that we all make. Overall a very awesome tutorial, thank you for making them. :D
2:33 The words "All at the same time" sound confusing here - does it mean that all actions must be performed at the same moment of time or is it just used as kind of "AND" logical operator which waits until all the actions get done and only after that it goes on?
At 5:45 shouldn't the interrupting edge cross the boundary of the interruptible activity region? That is how you know to destroy all the activation tokens in the interruptible activity region.
Peter Kelley Yeah. That lightning arrow is an interrupting edge and the specs (2.0) say: "Interrupting edges of a region must have their source node in the region and their target node outside the region in the same activity containing the region." Nitpick: The interrupting edge should have a standard arrow head. =P
Peter Kelley Yeah. That lightning arrow is an interrupting edge and the specs (2.0) say: "Interrupting edges of a region must have their source node in the region and their target node outside the region in the same activity containing the region." Nitpick: The interrupting edge should have a standard arrow head. =P
well explained. just I think you forgot to mention that the partition also can be used in the case of multiple actions happening for example if passenger verified at the check-in counter, the boarding ticket will be provided and at the same time luggages will be collected.
your tutorials are easy to follow i'm just thinking out loud, if you could post these up on vimeo so i could download these, and watch them offline, since google chrome don't let people download youtube videos
Thank you :) Sorry I only make .003 cents per view on RUclips. On Vimeo I'd have to pay almost $1000 per year to host my videos and I'd make no money from them. I just can't afford to do that.
A ForkNode is *not* represented as a diamond as specified around 3:20. It is represented as a line-segment, it can be either a horizontal or vertical, as specified in the UML 2.5 SuperStructure specification in Figure 15.29. From UML SuperStructure 2.5 section 15.3.4:
" The notation for both ForkNodes and JoinNodes is simply a line segment, as illustrated on the left side of Figure 15.29 (not necessarily in that orientation).When used, however, a ForkNode must have a single incoming ActivityEdge and usually has two or more outgoing ActivityEdges, while a JoinNode usually has two or more incoming ActivityEdges and must have a single outgoing ActivityEdge."
I will never understand why universities don't spend more time on courses that directly relate to the degree instead of unrelated courses?
Me lo chiedo anche io fratè
I don't understand either. And I am here to learn. Lmao
Me three!
Funny you say this, I am watching this video for a course in my MS in ML Engineering.
I'm glad you enjoy them. I don't think about negative comments. Actually some of them help me improve my videos :)
What I've learned is that NO MATTER WHAT the freaking UML diagram is wrong. According to my fucking SE professor.
What I'm showing here are the standardized rules for many UML diagrams. In the real world you will sometimes leave out explanations in the simple part of your system, while you'll explain beyond the standard when needed. As this series continues I demonstrate that because I create very detailed sequence diagrams
Thank you :) I do my best to fill in the gaps. It is amazing to me that colleges don't teach this topic. When I first started working for Apple it was a must that I understood Object Oriented Design and how to use UML diagrams.
Hello May I know where is the part1?
Thank you very much :) So far the voting is going the Game / Android route but that could change. I may be able to slip in Hibernate or Spring? What are you looking for? Either way I'll cover J2EE after the other tutorial. This is just a vote on which is covered next. It isn't an either or vote
I can't imagine finishing a big project without sequence diagrams. It does seem like more organizations I have dealt with lately are trying to work with just simple usage descriptions. I just go and make my sequence diagrams on my own. Magically I continue to finish my projects while others have been failing at an increasing rate. I get the Ed Helms thing all the time :)
Thank you :) This is technically a Java tutorial as it is a tutorial for all languages. I had to teach UML so I could dive into the complexity that is OO analysis. Then I'll dive in head first for refactoring. After that everything is easy
Thank you :) I do my best to make learning easy. I'm glad you liked the videos
You're very welcome :) I'm glad I could help
Eventually you'll find a few diagram tools that work best for you and then use them. I normally write a use case description and then a sequence diagram and that is it. Check out part 1 of my object oriented design tutorial to see what I use in the real world
Derek, I keep shying away from using UML notation, since I keep ending up with hybrid diagrams. Your videos have really helped to clear things up. Many thanks and greatly appreciated.
I'm very happy that I was able to help :) You're very welcome
I normally design all of my logic in a sequence diagram after I complete the usage case. The class diagram is just used to provide an overview of the system. I hope that helps
Cheatsheet needed....u r tutorial is awesome
Hello, I use UMLet. It works on every OS and can either be used as an Eclipse plugin, or on its own. Visual Paradigm is the best in my opinion, but it is also expensive. Most of the time for tutorials and in the real world I use a paper and pencil, or a white board.
Thank you :) This teaches about activity diagrams, but more importantly it teaches how to solve problems
That's ok. Always feel free to ask questions
THANK YOU MAN. RUclips tutorials are more easier to learn by far.
TheTranshallow Your welcome :) I'm glad they help
This tutorials were what I was always looking for !! Thanks a lot Derek, Coding is not much a big problem for me but I always struggled when I was asked to develop something from scratch, a lot of back and forth development cycles messes the whole project. Now I know how to proceed for new projects from scratch !
I'm very happy that I could help with this. Yes there is a big difference between writing simple programs and large professional ones. I couldn't imagine how I'd make a large application without UML.
what kind of prog. lang. you always use invinciblekd?
Abdulbarr Othman I'm primarily a c++ developer but now shifting slowly to Java !
I'm looking at these videos for possible use by developers in my company and I noticed something at about 2:40 that I'm not sure is right. Here a diamond is being used to execute activities in parallel however my understanding of the semantics of activity diagrams is that a diamond only produces one "activation token" and so only one of those activities can be executed. Normally there would be guard conditions coming out of the diamond to determine which path is picked. The correct notation for what you are describing would be a solid line which generates multiple activation tokens on exit. The merge should also be a solid line as execution continues when all inputs have triggered. The way you have it execution will continue after only one activity completes.
I was thinking exactly the same, that parallel activities should be joined by a solid line. So, what is the truth?
Silvana Donato See the official specification of UML 2.0 (10 years old and I suppose Derek used 2.0 as a shortcut for 2.x), 12.3.30 on fork nodes (the fat black bars). Those are for concurrent flows. Derek is wrong.
Peter Kelley Yeah, this is all a bit confusing. But looking at the specs it seems that the fat bars are called forks for outgoing lines and joins for incoming. Accordingly, the diamonds are called decisions for outgoing and merges for incoming. So, technically what you called a "merge" should be a "join". Just to avoid confusion. =)
Peter Kelley Yeah, this is all a bit confusing. But looking at the specs it seems that the fat bars are called forks for outgoing lines and joins for incoming. Accordingly, the diamonds are called decisions for outgoing and merges for incoming. So, technically what you called a "merge" should be a "join". Just to avoid confusion. =)
You're very welcome. Thank you :)
Thank you :) What are you looking for? The Umlet file?
This is my first time using UML. I found it very useful. Thank u Derek
+kinnaree patel I'm happy that I could help :)
Yes that is true, but I'm not sure what you are referring to in the video?
Haha I actually studied this in uni last year so just going over your videos for next year since it's faster than going through my books & notes ;)
Thank you :) I'm working to make videos easier to follow
I very much enjoy the random aggressive inflections you have throughout this video
Thank you :)
Honestly, what would I do without you?!?
Nicole Braybrook Thank you :) I'm glad to be able to help
check other tutorials
In this tutorial I'm using UMLet because it is free and identical on every OS. In the real world I use a paper and pencil or a whiteboard.
Thanks for all these awesome tutorials :) Instead of having to read a bunch of ppt slides for an exam, I just listened to those tutorials and took some notes and I was done with my diagrams :) Subscribed to your channel. You seem to have many interesting tutorials!
Also at about 4:50 the object node has 2 outgoing flows. I believe that there is a default in this circumstance but I always forget whether it is a fork or a merge. Better to show what happens explicitly.
Peter Kelley No, that seems to be legit, at least for the actual 2.0 from 2005. Just looking at the specification.
wish i had known of these video series when i was still studying at the university... this is a 100x more enjoyable than i remembered :D
+Lyndon Michael Bibera Thank you :) I'm glad you liked it.
Nowadays I watch your Java tutorials. Those tutorials are awesome. Thanks for them.
Thanks so much Derek. This is very simple for someone who hasn't done any use cases.
awesome. 2 follow up Q's:
1. As an engineer, is is crazy to expect business people to provide activity diagrams? (As opposed to "umm.... just make it work by next month")
2. Why do you sound EXACTLY like Ed Helms?
I think the ones who disliked this video are the ones who make videos themselves but got jealous of Derek's videos haha. I just started learning UML Diagrams yesterday and I already learned so much in only two videos.
That's funny 😁 I'm happy I could help
You deserve many,many more likes and subscribes
Cuan Otto Thank you :) I'm doing my best to improve so more people find the videos useful.
Thank you very much :) I greatly appreciate that!
Thank you :) It was fun to make. I like zooming
great job! i watched many of your UML videos and they all GREAT! thank you for uploading them :)
I'VE BEEN LOOKING FOR THIS PROGRAM THANNK YOU SO MUCH!
I'm happy I could help :)
Thank you :) search for UmLet
Really great tutorial, Derek!
Jim Constant Thank you :)
Derek, your UML tutorials saved my a*s! You make UML very easy to understand! Thanks alot!
***** Thank you :) I'm glad I could help. UML is very important
That's funny :) I'm very happy that I was able to help
You're very welcome :)
I love this video, I watched it in 2015, I'm watching it not - it's simple and clear
Thank you :) I'm happy it helped
Helpful and useful tutorial. Gotta finish my game design assignment with a good activity diagram ;)
Casey Lloyd Thank you :) I'm glad I could help
Just noticed from the previous comments that u were using UMLet as a mac user, thanks again :)
adi hamshari I always try to use tools that are free and available on every OS.
A sincere thank you from me! You are a uml legend!
EmSyed Thank you for the nice compliment :)
Hey Derek Banas,
Nice video couple of stuff I would like to point out. The merge and fork you are showing is actually junction nodes (however your depiction is correct). Merge and fork actually is a rectangular black thick line, the arrows differentiate which is fork and merge. I use umlet a lot hence I know the differences.
You're very welcome :) sorry about the voice. I get that from constant allergy problems
Awesome videos as always! Watching it at a rate of 1.5 makes it even more quicker :D
Thank you :) It is very nice for you to say that.
@Peter and Silvana, indeed, I'd use a fork/join for that. But as far as I remember activities after a fork would not be executed necessarily at the same time (as the author states in his example) as the only condition to 'join' after the 'fork' is that all the activities are completed, whenever it is.
Fabio D'Amico Yeah, it's representing concurrency, not parallelism.
Reading 3 UML books from the library is not even as 50% of this video
thankyou sir !
Thank you for the compliment :)
I agree this is well put together. Seems like those big tech bibles are mostly self promotion books from what I can see. You have to do a lot of reading before you get into anything useful.
Dude, your explanations are awesome.
Thank you for the nice compliment :)
Thank you for sharing Derek! Although some information flies by really fast, you're easy to follow and fun to listen to!
+Christian Slijngard You're very welcome :) I do my best to keep it interesting.
Very helpful, clear, simple and objective explanation (as always).Derek, thank you for help me revise, improve and learn so many important concepts in diverse subjects.
Ana Souza Thank you :) You're very welcome
You are such a GREAT tutor.. you are a professor.. thanks.. you save my time of reading a UML book
eng R Thank you for the compliment :) You're very welcome
Sorry for the wait. Ill get to JEE topics as soon as possible
really helpful better than my lecturer
I'm very happy that you liked it :)
Not to be a putz but at 1:26 you called the fork a merge. No big deal, the kind of mistake that we all make. Overall a very awesome tutorial, thank you for making them. :D
Sorry about that. I'm glad you liked it aside from that :)
Don't think that's a fork, it should be a decision, fork doesn't look like that.
nice Derek , you really helped me !
Thank you :)
Awesome! This was a great help and very easy to understand!
Thank you :)
watching this for my test today!
Thanks a lot Derek for a very helpful series of tutorials, very neat and precise.
You're very welcome :) I'm glad you liked them.
UMLet is the name. It is free and works on every OS
Excellent tutorial series. Thank you very much :)
Debopriyo Web Thank you :) You're very welcome
1:29 isnt that a decision node, rather than a merge node?
you are awesome Derek, thank you for tutorials
Thank you :) I appreciate that.
2:33 The words "All at the same time" sound confusing here - does it mean that all actions must be performed at the same moment of time or is it just used as kind of "AND" logical operator which waits until all the actions get done and only after that it goes on?
Excellent tutorial Derek. Thanks for sharing. Al
Pilau Talk Thank you :) You're very welcome
Excellent presentation on UML Activity Diagrams. I have a more profound understanding of the topic.
***** Thank you :) I'm happy i could help.
I've never been into the uml tools that translate into code. I didn't find them useful and also they are extremely expensive. What tool are you using?
Thanks for a great tutorial once again! My cat loved it too :)
+Tilion Dece That's funny :) You're very welcome
Thank for this great service to us. Very clear explanation and easy to understand.
At 5:45 shouldn't the interrupting edge cross the boundary of the interruptible activity region? That is how you know to destroy all the activation tokens in the interruptible activity region.
Peter Kelley Yeah. That lightning arrow is an interrupting edge and the specs (2.0) say: "Interrupting edges of a region must have their source node in the region and their target node outside the region in the same activity containing the region."
Nitpick: The interrupting edge should have a standard arrow head. =P
Peter Kelley Yeah. That lightning arrow is an interrupting edge and the specs (2.0) say: "Interrupting edges of a region must have their source node in the region and their target node outside the region in the same activity containing the region."
Nitpick: The interrupting edge should have a standard arrow head. =P
really helpful saved the exam
Thank you :)
@1:28 Isn't this supposed to be a decision? And when the two lines recombine it should be a merge. Anyway that's what I learned.
A detailed concept of activity diagrams is provided in this lecture.
Great Tutorial, Thanks Derek
I want to commend you for the great material you post!
well explained. just I think you forgot to mention that the partition also can be used in the case of multiple actions happening for example if passenger verified at the check-in counter, the boarding ticket will be provided and at the same time luggages will be collected.
Thank you :) Yes good point
So what's the difference between the use case and this? i mean is one more of a preference thing or do you have to use them both?
Thank you very much for your videos and efforts to explain.
Nice Explanation about the notation! But i have a question sir, are we only need this information to create the activity diagram?
Great job! Thanks for sharing your knowledge in such a professional manner.
Thank you a lot ! tutorial is brilliant !
+Rass Muradov You're very welcome :) Thank you
Its quite confusing in using activity diagram to model use case diagram visually. Thanks to your video, I got it crystal clear :)
Thank you :) I'm glad I could help
Thank you very much Derek. I am a fan!
Great Tutorial, Very Helpful.
Your are just awesome ! Helped me a lot ! Thanks for sharing your knowledge.
+Martin Peraic Thank you :) You're very welcome
Awesome tutorial. It helped me alot. Thanks
Thank you very much :)
Whose point of view activity diagram usually based on? User or system? Thanks
Great Tutorial. Thank you
Shabaz Budhwani Thank you :) You're very welcome
thank you .it was very helpful
your tutorials are easy to follow i'm just thinking out loud, if you could post these up on vimeo so i could download these, and watch them offline, since google chrome don't let people download youtube videos
Thank you :) Sorry I only make .003 cents per view on RUclips. On Vimeo I'd have to pay almost $1000 per year to host my videos and I'd make no money from them. I just can't afford to do that.
Helpful tutorial !
Thank you :)