UML
From BC$ MobileTV Wiki
Unified Modeling Language (commonly abbreviated as UML) is a meta-language with graphical representations used to describe classes in object-oriented programming languages.
Contents
Diagrams
Sequence Diagrams
Sequence Diagrams provide an overview of communications between various application components.
- Web Sequence Diagrams: http://websequencediagrams.com/
Tools
- wikipedia: List of Unified Modeling Language tools
- UMPLE: https://cruise.eecs.uottawa.ca/umple/ | DEMO | DOWNLOAD | DOCS | EXAMPLES (by Timothy Lethbridge & team @ University of Ottawa)
- IBM RationalRose (commercial): https://www.ibm.com/developerworks/downloads/r/architect/index.html | DOCS[1]
- VisualParadigm (freemium/commercial): https://www.visual-paradigm.com/solution/freeumltool/ | DOWNLOAD (has plugins for all the major IDEs - Eclipse/Netbeans/IntelliJ/VisualStudio)
- ArgoUML (OSS): http://argouml.tigris.org[2][3][4][5]
- StarUML (dual OSS/commercial): http://staruml.io/ | DOWNLOAD[6]
Eclipse Plugins
- Papyrus: https://www.eclipse.org/papyrus/ (Papyrus is the defacto UML & Code Design tool, implementing all parts of the OMG not just UML diagrams)
- UMPLE: https://github.com/umple/umple/wiki/InstallEclipsePlugin
- ObjectAid: http://www.objectaid.com/home | ECLIPSE - INSTALL[7][8][9][10]
- UML Lab: https://marketplace.eclipse.org/content/uml-lab-modeling-ide
- Visual Paradigm: https://www.visual-paradigm.com/support/documents/vpuserguide/2381/2382_eclipseinteg.html
Netbeans Plugins
- NetBeans 4.x-6.x had native support for UML: http://wiki.netbeans.org/NetbeansUML (after Eclipse 7.x changed the platform & plugin structure, the legacy UML modes won't work, so you need to use a plugin... the OSS community's slightly more limited stand-in for native UML support was intended to be easyUML)[11]
- easyUML: http://plugins.netbeans.org/plugin/55435/easyuml[12]
- VisualParadigm: https://www.visual-paradigm.com/tutorials/modelinginnetbeans.jsp
Resources
- VendingMachine - Customer UML: https://creately.com/app/?tempID=havcif57&login_type=demo#
[13] [14] [15] [16] [17] [18] [19] [20] [21] [22] [23] [24] [25] [26] [27] [28] [29] [30] [31] [32]
- UML Diagram Templates and Examples: https://www.lucidchart.com/blog/uml-diagram-templates
- Top 12 Open Source UML tools: http://open-tube.com/top-5-open-source-uml-tools
- List of UML state-machine diagram to (Java) Code (Generation) Software: https://stackoverflow.com/questions/3862598/list-of-uml-state-machine-diagram-to-java-code-generation-software
JS
- Pintora -- text-to-diagram generator: https://pintorajs.vercel.app/demo/live-editor/ | SRC
- Mermaid.JS: https://mermaid-js.github.io/mermaid/#/ | DOCS
JAVA
- TinyUML - free Java UML 2 editor: http://sourceforge.net/projects/tinyuml/
PHP
phUML is fully automatic UML class diagramm generator written PHP. It is capable of parsing any PHP5 object oriented source code and create an appropriate image representation of the OO-structure based on the UML specification.
Tutorials
- What is Unified Modeling Language: https://www.lucidchart.com/pages/what-is-UML-unified-modeling-language
- UML fundamentals course: https://www.tutorialspoint.com/uml_online_training/uml_fundamental.asp
- UML tutorial: http://atlas.kennesaw.edu/~dbraun/csis4650/A%26D/UML_tutorial/
- UML Tutorial: Part 1 -- Class Diagrams: http://www.objectmentor.com/resources/articles/umlClassDiagrams.pdf
- UML basics - The sequence diagram: http://www.ibm.com/developerworks/rational/library/3101.html
- Practical UML -- A Hands-On Introduction for Developers : http://edn.embarcadero.com/article/31863
- UML introduction (academic): http://uml-tutorials.trireme.com/
- UML Tutorial: http://www.sparxsystems.com/uml-tutorial.html
- 4 Quick Steps to Start UML Modeling in NetBeans: http://www.visual-paradigm.com/product/vpuml/tutorials/modelinginnetbeans.jsp
- ObjectAid UML Explorer Eclipse plugin installation to create a "Class Diagram": https://examples.javacodegeeks.com/core-java/eclipse-class-diagram-example/
External Links
- wikipedia: Unified Modeling Language
- wikipedia: IBM Rational Unified Process
- wikipedia: Computer-aided software engineering (CASE)
- wikipedia: Class-responsibility-collaboration card (CRC cards)
- 13 reasons for UML’s descent into darkness: http://littletutorials.com/2008/05/15/13-reasons-for-umls-descent-into-darkness/
- Class Responsibility Collaborator (CRC) Models: An Agile Introduction: http://agilemodeling.com/artifacts/crcModel.htm
- CRC Cards: https://www.agilealliance.org/glossary/crc-cards/#q=~(infinite~false~filters~(postType~(~'page~'post~'aa_book~'aa_event_session~'aa_experience_report~'aa_glossary~'aa_research_paper~'aa_video)~tags~(~'crc*20card))~searchTerm~'~sort~false~sortDirection~'asc~page~1)
References
- ↑ wikipedia: IBM Rational Rose XDE
- ↑ Poseidon for UML Community Edition: https://download.cnet.com/Poseidon-for-UML-Community-Edition/3000-2212_4-10071385.html (was originally meant to be the commercial version of, then successor of ArgoUML)
- ↑ Gentleware - maker of Poseidon for UML - merging with Rozdoum: https://rozdoum.com/blog_articles/items/rozdoum-announces-merge-with-gentleware-ukraine.html
- ↑ Gentleware's Poseidon for UML: https://coderanch.com/t/151945/certification/Gentleware-Poseidon-UML
- ↑ Gentleware Celebrates 5 Years of Success: https://www.linux.com/news/gentleware-celebrates-5-years-success
- ↑ StarUML features: http://staruml.sourceforge.net/en/about-2.php | SVN
- ↑ Eclipse plugin for generating UML class from java project [closed]
- ↑ Eclipse plugin for generating a class diagram: http://stackoverflow.com/questions/6302490/eclipse-plugin-for-generating-a-class-diagram
- ↑ UML Diagram Tool - Eclipse plugin?: http://stackoverflow.com/questions/2600097/uml-diagram-tool-eclipse-plugin
- ↑ How to Automatically generate UML diagrams from javacode in Eclipse: https://www.youtube.com/watch?v=0Zlh56mTS6c
- ↑ Open Source UML modeling: https://netbeans.org/download/magazine/02/nb02-part7-uml.pdf
- ↑ Lessons Learned from the Development of the easyUML NetBeans Plugin at the University of Belgrade: https://dzone.com/articles/lessons-learned-easyuml-belgrade
- ↑ UML Diagrams Vending Machine: http://www.programsformca.com/2012/03/uml-diagrams-vending-machine.html
- ↑ Vending Machine class diagrams: http://softeng.polito.it/tongji/SE/ex/Vending-machine.pdf
- ↑ David Leberknight & Ron LeMaster -- Object-Oriented Design with UML & Java - Part X, UML State Diagrams: http://www.gui.net/portfolio/csci4448/courseNotes/10_UMLStateDiagrams.pdf
- ↑ OO modeling -- Vending Machine: https://www.stephan-brumme.com/download/object%20oriented%20modelling/Object%20Oriented%20Modelling%20Presentation.pdf
- ↑ UML model for OO Vending Machine (LAB): http://community.wvu.edu/~hhammar/CU/swe/Slides/sw1%20slides6%20class%20diagrams.ppt
- ↑ Java Object Oriented Analysis and Design Problem -- Part 1 - Design a Vending Machine in Java (Interview Question): https://javarevisited.blogspot.com/2016/06/design-vending-machine-in-java.html
- ↑ Java Object Oriented Analysis and Design Problem -- Part 2 - Vending Machine: https://javarevisited.blogspot.com/2016/06/java-object-oriented-analysis-and-design-vending-machine-part-2.html
- ↑ UML Diagrams Vending Machine: https://itkaka786.blogspot.com/2012/11/uml-diagrams-vending-machine.html
- ↑ How to approach design problems like “design a vending machine”: https://stackoverflow.com/questions/1127478/how-to-approach-design-problems-like-design-a-vending-machine
- ↑ The OO design process -- Getting started: https://web.archive.org/web/20090228114745/http://www.ibm.com/developerworks/webservices/library/ws-oo-design1/
- ↑ Chapter 2 -- UML exercise: http://www.lix.polytechnique.fr/~liberti/teaching/isic/inf561-07/umlexsol.pdf
- ↑ Vending Machine (Java): https://repl.it/@TLIN1/Vending-Machine-Java
- ↑ York University -- CS 1030 - Assignment 1, Vending Machine: https://www.eecs.yorku.ca/course_archive/2003-04/S/1030/assign/a1/ | solution example
- ↑ Vending machine implementation: http://codereview.stackexchange.com/questions/37376/vending-machine-implementation
- ↑ VendingMachine examples: http://github.com/teressaeid/VendingMachine/blob/master/Machine.java
- ↑ Vending Machine Simulator: https://coderanch.com/t/668190/java/Vending-Machine-Simulator
- ↑ Changing Money in Java: https://andrew.neitsch.ca/publications/m496pres1.nb.pdf
- ↑ Given a monetary amount, calculate the equivalent change: https://codereview.stackexchange.com/questions/121700/given-a-monetary-amount-calculate-the-equivalent-change
- ↑ Algorithm to determine coin combinations: https://stackoverflow.com/questions/5897184/algorithm-to-determine-coin-combinations
- ↑ How to find all combinations of coins when given some dollar value: https://stackoverflow.com/questions/1106929/how-to-find-all-combinations-of-coins-when-given-some-dollar-value
See Also
Design | Visualization | Schema | XSD