Intro to UML - raisercostin/software-wiki GitHub Wiki
UML comes from Unified Modelling Language. Is a visual language that prove useful to communicate relationships between concepts in the software world. Example of concepts are: contexts, containers, components, classes. Examples of relationships are: is-a, has-a, inherits, calls, method return, depends-on, installed-on.
UML failed to become a fully formal language and now is widely used as a micro-language used to communicate better.
There are several types of useful UML diagrams each of them focused on some aspects:
- Class diagrams - shows classes and the relationship between them: is-a, has-a, uses, aggregates
- Sequence diagrams - shows the order in which control is passed from component to component
- Deployment diagrams - used to describe what containers exists and how they are contained in others and how they communicate between them: hosts, ips, ports, protocols, endpoints.
To remember them use the UML cheatsheet. To learn UML just read this small (200 pages book): Martin Folwer - UML Distilled - pdf
Tools
- ObjectAID - lightweight eclipse plugin to generate diagrams from existing java sources - http://www.objectaid.com/
- class diagrams (free version)
- sequence diagrams (paid version)
- https://www.quora.com/What-is-the-best-UML-plugin-for-Eclipse
- papyrus - http://www.eclipse.org/papyrus/download.html
- Obeo UML Designer 2 - based on syrius
- sirius eclipse framework - http://www.eclipse.org/sirius/overview.html
Resources
- UML cheatsheet - http://loufranco.com/wp-content/uploads/2012/11/cheatsheet.pdf
- read first UML Distilled - http://ce.sharif.edu/courses/96-97/1/ce418-1/resources/root/Books/UMLDistilled.pdf
- generic (quora/stackoverflow/google)