Umple User Manual - Lethbridge, Timothy (Université d'Ottawa | University of Ottawa, 2021)
Umple is a tool for creating models of software and generating code for the software in Java, PHP, C++ and other languages. Umple’s language is textual, but many kinds of diagrams can be generated, including state machines, class diagrams, feature diagrams, entity-relationship diagrams, and so on. Class diagrams can also be edited, in order to update the text. Umple can be used online, in Docker, as a command-line tool or in an IDE like Microsoft Visual Studio Code or Eclipse. Code, such as methods, in the target languages such as Java is embedded directly in the Umple code, enabling direct generation of systems from the Umple code. This document is the pdf version of the Umple user manual. Most people will use the online html version of the manual, available at https://manual.umple.org, however some people prefer a printable document, or to have a document they can cite. This document has exactly the same content as the online version, and links will take online users of the pdf to the online manual. All examples in the manual have links that open the example code in UmpleOnline at https://try.umple.org. Umple is an open-source project, developed by over 60 students at the University of Ottawa and elsewhere since 2007. The Umple compiler is written in itself. Umple is hosted on Github, at http://code.umple.org. Umple is targeted at open-source developers, so they can use it in their textual toolchain and develop code faster. It is also targeted at educators who want to teach modeling, as well as to enable students to create large, reliable, and complete executable systems from those models, something that is more complex when using other modeling tools. Umple is also a research platform for studying software modeling, programming language technology, agile software development, and user experience in software development.
Keywords: Model-driven development; Software user manual; Umple; Code generation; Software engineering; Programming language