freshcrate
Skin:/
Home > Databases > umple

umple

Umple: Model-Oriented Programming - embed models in code and vice versa and generate complete systems. Save yourself lots of coding. Do it collaboratively online in UmpleOnline, in an IDE or on the co

Why this rank:Strong adoptionRelease freshnessHealthy release cadence

Description

Umple: Model-Oriented Programming - embed models in code and vice versa and generate complete systems. Save yourself lots of coding. Do it collaboratively online in UmpleOnline, in an IDE or on the command line.

README

Umple Modelling Language

Build Status

OS Linux Jenkins Windows Appveyor
Status Jenkins Linux Build status Windows Build status

Description

This is the main project for various Umple subprojects and components.

Umple is a model-oriented programming technology, allowing developers to embed modelling concepts (e.g. UML associations, state machines), patterns, generation templates, and other abstractions in traditional code, and vice versa. It generates high quality code for Java, C++ and PhP (Python in beta), as well as diagrams, metrics and many other artifacts. It can be embeded in the above languages as well as embed them.

The project homepage is located at https://umple.org/

There are a large number of scientific papers about Umple listed at: https://umple.org/publications

Cite the overall project as: Timothy C. Lethbridge, Andrew Forward, Omar Badreddin, Dusan Brestovansky, Miguel Garzon, Hamoud Aljamaan, Sultan Eid, Ahmed Husseini Orabi, Mahmoud Husseini Orabi, Vahdat Abdelzad, Opeyemi Adesina, Aliaa Alghamdi, Abdulaziz Algablan, Amid Zakariapour, "Umple: Model-Driven Development for Open Source and Education", Science of Computer Programming, 2021, https://doi.org/10.1016/j.scico.2021.102665.

Cite latest software release as: University of Ottawa, Umple, https://umple.org/releases https://doi.org/10.5281/zenodo.4677562 DOI

Releases are created 1-4 times a year, but UmpleOnline always has the latest version.

Development Process

Umple is developed in itself, guaranteeing robustness; the most recent version of the compiler must be used to compile itself. See the wiki for development setup: https://umple.org/devsetup

Development follows a model-driven, test-driven, agile, continuous-integration process. Umple is hosted currently on Github at https://umple.org/code . It was first released in 2007. The master was on Google Code from 2011 to mid 2015 and moved to Github in 2015.

Umple has been largely developed as a research project at the University of Ottawa, Canada, by numerous PhD and masters students. Many undergraduates from across Canada and the USA have also contributed through the UCOSP program. See the license file for the list of contributors. https://umple.org/license

Installation and Downloading

Umple does not need necessarily to be downloaded, the following allow you to run it directly in any web browser:

You can download the java jar for command-line use, or the Eclipse plugin:

  • Download page: https://umple.org/dl - Links to the latest official release and continuous builds (command-line, Eclipse, Docker)

To run locally on your machine, Umple needs Java (versions 8 and up although 17 is recommended) installed. It runs on Mac, Linux and Windows.

Usage

Umple is a programming and modeling language with a rich syntax. Full documentation with many examples can be found at

Other Key links

Umple is continuously tested and built on its own Jenkins server (see https://jenkins.umple.org) . It is also built on Appveyor (https://umple.org/appveyor/).

Contributing

License

Umple is licensed under the MIT license. See https://umple.org/license

Credits

All developers of Umple are listed in the license file at https://umple.org/license

Financial support has been received from NSERC and the Ontario Research Fund. IBM supported early development of Umple. Google and Facebook supported student travel during Umple's development.

Contents of the directories

The umple project is split into many smaller subprojects; the folder hierarchy is explained below to better describe the structure.

  • build/

    • Ant build scripts and related information including user manual raw data
  • cruise.umple/ Umple compiler

    • See its own ReadMe.txt for further details
    • See also UmpleTo* below for additional compiler components
  • cruise.umple.eclipse/, cruise.umple.xtext.ui/ Eclipse plugins

  • cruise.umplificator Converting outside code to Umple

    • cruise.umple.validator Validates umple when umplifying
  • cruise.umple.nebula Infrastructure used for real-time C++

  • dev-tools Tooling for Umple developers

  • dist Build produced items, only available after building

    • libs/ Managed build dependencies that umple.jar require to run*
    • cruise.umple/reference User manual
    • qa/ Test reports
    • umple.jar and umple.VERSION.jar Current command-line Compiler
    • umpledocs.VERSION.jar User manual generator
    • umplestats.VERSION.jar Statistics generation
    • umplesync.VERSION.jar UmpleOnline tool to to synchronize graphical form
    • umplerun.VERSION.jar tool to drive input to an umple program
    • vml.VERSION.jar * Extension for variability modeling*
    • umple.unit-test.jar Test Language Compiler
    • umple.mutation.jar Umple Mutant Generator
  • examples/ Developer curated examples

  • externalexamples/ External projects that are used for testing

  • ExternalTextEditorPlugins Plugins for external editors, Notepad++, etc

  • sandbox Small test done before a build to make sure testing and compiling works

  • testbed/, testbed_php/, testbed_ruby/ Test suites for Java, Php and Ruby respectively

  • UmpleToJava/ Code generation for Java

  • UmpleToPhp/ Code generation for Php

  • UmpleToRuby/ Code generation for Ruby

  • UmpleToRTCpp/ *Code generation for C++ *

  • UmpleToSDL/ Code generation to convert Umple to SDL (in early development)

  • UmpleToSql/ Code generation SQL from Umple models

  • UmpleToTest/ Code generation for abstract tests

  • UmpleToTemplate/ Location for templates that could be common to subprojects

  • UmpleTToJunit/ Code Generation for JUnit5 - used by MTL compiler

  • UmpleTToPhpunit/ Code Generation for PhpUnit - used by MTL compiler

  • UmpleTToRubyunit/ Code Generation for RubyUnit - used by MTL compiler

  • umpleonline/ The UmpleOnline web application

    • UmpleOnline allows generation of code from Umple directly in a web browser, and also editing of Umple both graphically and textually. Available at https://try.umple.org
  • Umplificator/ Reverse engineer code to Umple

  • umplificatoronline/ Online tool for converting code to Umple

  • umpleUI/ Projects for the UIGU tooling

    • Projects for generating a UI through UIGU from Umple. These need work to incorporate them into UmpleOnline
  • umplewww/ Core files from the Umple.org web pages

    • Includes items such as the user manual that are moved at build time into the appropriate place

Release History

VersionChangesUrgencyDate
v1.37.0## Umple release 1.37.0 contains all changes made from January 11th, 2026 to April 18th, 2026 Changes in this release are those listed below. These were almost exclusively worked on by students at the University of Ottawa. The names of students are listed in the License file. Umple's development has progressed over the last three months at an exceptionally fast rate, with 3 masters students, and 8 4th year capstone students working on it ... and with the help of AI! This release encompasseHigh4/18/2026
v1.36.0## Umple release 1.36.0 contains all changes made from October 12th 2024 to January 11th 2026. Changes in this release include the following. These were almost exclusively worked on by students at the University of Ottawa. The names of students are listed in the License file. Work is rapidly progressing, so the following notes also give hints about what should be coming in the next few months. ### AI Capabilities in UmpleOnline AI generation capability has been introduced directly Low2/12/2026
v1.35.0Umple release 1.35.0 contains all changes made from June 6th 2024 to October 11th 2024. Changes in this release include the following. These were mostly worked on by students from High School to Masters levels. Major replacement of the technology used to display and edit code in UmpleOnline. Moving from CodeMirror5 to CodeMirror6 https://codemirror.net. This sets the scene for collaborative editing which will be released hopefully later in 2024. Changes include colouring of umple elements Low10/11/2024
v1.34.1This is a checkpoint release before 1.35.0 so that it is possible to easily revert if needed. See the notes in 1.35.0 when releasedLow10/11/2024
v1.34.0Umple release 1.34.0 contains all changes made from late January 10th 2024 to June 6th 2024. Changes in this release include the following. These were all worked on by either Masters or 4th year students at the University of Ottawa. Ability to edit GraphViz diagrams in UmpleOnline: Main Issue #2081 State machines can now be edited by right-clicking or double-clicking to bring up a menu; menu items allow various kinds of edits: PR: #2117 Double-click event handling in class and stLow6/6/2024
v1.33.0Umple release 1.33.0 contains all changes made from late December 2022 to January 10th 2024. Changes in this release include the following. These were all worked on by either Masters or 4th year students at the University of Ottawa. UmpleOnline improvements: - Issue #1898 and #1958 and PR #2035: Menus to allow GraphViz diagrams to be edited. In a class diagram: Right-clicking (control-clicking on a Mac) on a class allows renaming or deleting a class, adding an attribute, association orLow1/10/2024
v1.32.1Umple release 1.32.1 contains all changes from November 28th 2022 to December 22, 2022.. Changes in this release include: Beta 4 of generation of Python (transpiling generated Java using TXL). PRs #2006, #2008, #2009 This should now be usable for the vast majority of Umple code. Code involving concurrency or delays (do activities, after keyword, etc.) do not yet work. Updated to latest JQuery (including dealing with some security issues): #2012 User manual examples that display traiLow12/23/2022
v1.32.0Umple release 1.32.0 contains all changes from August 19th 2021 to November 27th 2022. Additional minor releases are expected in coming weeks. Changes in this release include: Execution of generated code in UmpleOnline: Issue #1622. Also added more executable examples, and flagged executable examples in UmpleOnline using an asterisk. Masters work of Lovepreet Singh Support of Umple for command-line installation/use and as a dependency of other products using Chocolatey (Windows issueLow11/28/2022
v1.31.1Umple release 1.31.1 contains all changes from July 9th 2021 to August 18th 2021 This is the mid-summer release; one more release is expected in September with additional summer work. Changes include: Adding automated UI tests to UmpleOnline that can be run through jenkins.umple.org; this should help prevent regressions in the UX. Tests are run in headless Chrome. #1836 for issue #363 (this had been worked on since 2016) Adding a generator to refactor annotative to compositional mixsLow8/18/2021
v1.31.0Umple release 1.31.0 contains all changes from April 9th 2021 to July 9th 2021 This is one of the most significant Umple releases in a couple of years. The changes include important improvements to end-user experience (of those developing with Umple) and the experience of those developing Umple itself. Changes include: Major refactoring of the source code structure of the Umple compiler (its .ump files in cruise.umple/src) to improve understandability, enable product-line creation and vLow7/9/2021
v1.30.2Umple release 1.30.2 contains all changes from August 9th 2020 to April 9th 2021 Various user manual improvements, including tool tips on the table of contents and the Next and Prev buttons, and added YouTube videos The command line compiler gives better information when completing a build. Ability to specify guards on entry and exit actions #1600 Multiple mixsets in one use statement #1664 Updates to Docker image to use newer dependencies Making ump directory not part of the rLow4/9/2021
v1.30.1Release notes for Umple release 1.30.1. This release contains all changes from te July 23, 2020 to August 8th, 2020. The main purpose of the release is to update the Docker image to: * Php 7.3.18 * Graphviz 2.42.3 * Java 11.0.5 * Nginx 1.19.1 (runs as account 101 now) * Supervisord 4.1.0 (no longer runs as root - runs as account 101) * Alpine Linux 3.11 These are the latest mutually-compatible versions available from DockerHub. Additional improvements include: * A beLow8/8/2020
v1.30.1rc1This is a release candidate (pre-release) for Umple 1.30.1 The key thing this does is updates the base docker image to use new versions of php, Java, Nginx, Graphviz, and other software. There are also some bug fixes and several updates to the user manual. If all is Good, 1.30.1 will be released on August 7 or 8Low8/6/2020
v1.30.0Release notes for Umple release 1.30.0. This release contains all changes from the end of 2018 until the July 23, 2020, including: - Many bug fixes and minor improvements (check the list of pull requests) - Umple model-based test generation by (PhD thesis work of Sultan Eid) - Many improvements to Mixsets and for Product Line Development such as Feature diagrams (PhD thesis work of Abdulaziz Algablan) - Some user interface improvements in UmpleOnline - Gradle building capabLow7/23/2020
v.1.29.1Release notes for Umple release 1.29.1 This release includes all updates to Umple From September 2018, including: Bug fixes including several glitches in Umpleonline, in date initialization, and in constraint code generation. Support for nested generic types in attributes. Improvements to NuXMV generation. Updates to the user manual to allow embedding of YouTube videos (three are so far embedded), and labelling of examples. Additional details have also been added for sections descLow10/3/2018
v.1.29.0Release notes for Umple release 1.29.0 This release includes all updates to Umple From July-August 2018, including: Improvements to Mixsets (Abdulaziz Algablan's PhD work) including making them work internal to more umple entities such as state machines and traits. Adding a feature for 'queued' methods. Any void method can have its signature marked as 'queued'. The call will then be put on a queue to be executed in a second thread, and the calling thread will be able to continue withoutLow8/30/2018
v.1.28.0Release notes for Umple release 1.28.0 This release includes all updates to Umple From April-June 2018, including: Many improvements to UmpleOnline, including bug fixes in editable class diagram mode, and immediate validation of graphical edits. Extensive upgrades to the user manual including fixing errors, documenting many features that were undocumented, and adding pages for all error and warning messages. Many bug fixes, particularly with associations and aspect orientation. FiLow7/1/2018
v.1.27.1Release notes for Umple release 1.27.1 This release includes all updates to Umple From early January 2018 to early April 2018, including: Automatic minimizing of Javascript for UmpleOnline e.g. issue #949 Fixes to the user manual e.g. issue/prs #674 #1206 #1218 $1251 Improvements to Umpleonline e.g. issues #420 #412 #1208 An issues related to custom vs generated injection of code, e.g. issue/pr #1002, #1234 Numerous other bug fixes, including fixes relating to specialization anLow4/6/2018
v.1.27.0Release notes for Umple release 1.27.0 This release includes all updates to Umple From Late November 2017 to January 12 2018, including: Improvements to command-line debugging. Both errors compiling embedded Java and stack traces when running generated systems now point to the original Umple source. Improvements to joint.js generation for class diagrams in UmpleOnline. Refactors UmpleOnline with a new DataStore interface Various bug fixes. The Jars are as follows: The umple-Low1/12/2018
v.1.26.1Release notes for Umple release 1.26.1 This release includes all updates to Umple From May 2017 to November 21 2017, including: Substantial (8 times) speedup in UmpleOnline by using an internal server that the php communicates with using a socket. Logging in UmpleOnline. Availability of building a Docker image for UmpleOnline to allow easily running it on a local machine (see http://docker.umple.org) Fixes to the build environment, particularly ensuring build is verified in WindowLow11/21/2017
v.1.26.0Release notes for Umple release 1.26.0 This release includes all updates to Umple since December 2016 and up until May 24 2017, including: Many improvements to traits New technology for enabling Umple objects to be distributed to multiple units (different Java VMs on different machines, for example) Improvements to JointJS display in UmpleOnline Addition of Enumerations that can be used in multiple classes. Improvements to final states Various bugs in state machines StepsLow5/24/2017
v.1.25.0Release notes for Umple release 1.25.0 This contains all updates to end December 2016. The following are the key changes: Several improvements to traits. Improvements to formal methods generation New capabilities for distributed objects using RMI (still under development). Generation of diagrams using joint.js (still under development) C++ CMake file generation, and better code generation support for the Mac. Many small bug fixes. For other recent changes, see the release notes for releaLow12/31/2016
v.1.24.0Release notes for Umple release 1.24.0 This contains all updates to early March 22 2016. The following are the key changes: This release is essentially identical to release 1.23.1, except for internal changes: Umple Java generation now is based on UmpleTL templates instead of using Jet templates. Building Umple is now no longer dependent on Jet, and all Jet templates have been deleted, as have the generated code from the jet templates. That is simply regenerated now as needed. Users should seLow3/22/2016
v.1.23.1Release notes for Umple release 1.23.1 This contains all updates to March 21 2016. The following are the key changes: Umple is now continuously built and tested on Appveyor for WIndows, as well as (as before) both on Travis and (as before) at the University of Ottawa (cc.umple.org). Improvements to UmpleTL (Template language) Conversion of generation templates from Jet to UmpleTL in the PhP and Jet converters. This is the final release in which generation of Java and hence the compiler itseLow3/22/2016
v.1.23.0Release notes for Umple release 1.23.0 This contains all updates to December 21, 2015. The following are the key changes: Since the last official release (1.22.0, Feb 24 2015) Umple's hosting has moved from Google Code to Github and source control moved from svn to git. This has resulted in many changes to the structure of the repository and the build process. In particular 1) binaries and dependencies are no longer being stored and version controlled directly in the repository, but are obtainLow12/21/2015
v.1.21.0.4666Release notes for Umple release 1.21.0.4666 This contains all updates to Oct 27, 2014. The following are the key changes: Improvements to constraints Improvements to graphViz generation Improvements to tracing Fixes to Eclipse plugin for Luna Improvements to umplification Multiple do activities allowed Better semantics for association classes State table generation Umpleonline test suite set up (although not active yet in cruise control) Many bug fixes. See http://changed.umple.org fLow12/11/2015
v.1.20.2.4305Release notes for Umple release 1.20.2.4305 This contains all updates to August 5, 2014. The following are the key changes: Composite structure diagrams can now be generated. This includes new keywords Many updates in UmpleOnline - In particular, it automatically adjusts to screen size. Many improvements to warning and error messages - for example detection of many problems in state machines, Improvements to traits. Improvements to tracing. Improvements to the umplficator. Many bug fixesLow12/11/2015
v.1.20.1.4071Release notes for Umple release 1.20.1.4071 This contains all updates to May 16, 2014. The following are the key changes: The Eclipse Plugin is now working on all platforms. The 1.20.0 release had an issue relating to 32-bit vs 64 bit. Fixed bugs related to development of Umple itself under Windows (tests were failing). History and deep history in state machines. Improvements to the ECore generator Customizations for code generation - the ability to specify suboptions make a generator giveLow12/11/2015
v.1.20.0.3845Release notes for Umple release 1.20.0.3845 Contains all updates to April 1, 2014 Core Umple syntactic capabilities: New capability for generation templates See http://templates.umple.org State machines: Improved code generation for queued and pooled state machines Allow dotted notation x.y in the target of a transition Injection of code before and after generated event methods Various bug fixes and improved messages Parsing Substantially sped up parsing by rewriting the parser infrastructuLow12/11/2015
v1.19.0.3287Contains all updates up to December 17, 2013 Many small improvements to code analysis and generation including better handling of interfaces. Input of XMI files. Improvements to UmpleOnline including Dropbox integration and the ability to show and add methods in the diagram. See http://changed.umple.org for details of recent changes The cruise.umple.eclipse_n.n.n.n jar is the Eclipse plugin. The umple_n.n.n.n.jar is the command line compiler. For details on how to install see http://dl.umpleLow12/11/2015
v1.18.0.3036Contains all updates up to September 22, 2013 Real time C++. Metrics generation from an Umple Model. Many small improvements to code generation. Improvements to syntax and messages to prevent programmer/modeller error. Language-specific code blocks. Improvements to trace generation. See http://changed.umple.org for details of recent changes The cruise.umple.eclipse_n.n.n.n jar is the Eclipse plugin. The umple_n.n.n.n.jar is the command line compiler. For details on how to install see http://Low12/11/2015
v.1.22.0.5146Release notes for Umple release 1.22.0.5146 This contains all updates to February 23, 2015. The following are the key changes: Umple jars are now built with Java 8. This means that Java 8 is required to run the Umple compiler. However Umple still generates Java-7 compilant code form now Improvements to state tables Many improvements to traits, including new option to generate diagrams with traits Specialization of associations Improvements to the umplificator Improvements to formal methodLow8/29/2015

Dependencies & License Audit

Loading dependencies...

Similar Packages

excalibase-graphqlExcalibase GraphQL instantly turns your database into a GraphQL API. Built with Spring Boot, it supports schema discovery, subscriptions, and type handling — no manual resolvers needed.main@2026-06-04
MoLiâš™ī¸ Simplify your projects with MoLi, a fast and flexible Molang interpreter in Java, designed for easy integration and high performance.main@2026-06-06
arcadedbArcadeDB Multi-Model Database, one DBMS that supports SQL, Cypher, Gremlin, HTTP/JSON, MongoDB and Redis. ArcadeDB is a conceptual fork of OrientDB, the first Multi-Model DBMS. ArcadeDB supports Vecto26.6.1
vespaAI + Data, online. https://vespa.aiv8.699.8
verisimiserAugment any database with VeriSimDB octad capabilities — drift detection, provenance, temporal versioning, modality overlaysmain@2026-06-02

More in Databases

orbitOne API for 20+ LLM providers, your databases, and your files — self-hosted, open-source AI gateway with RAG, voice, and guardrails.
alibabacloud-adb20211201Alibaba Cloud adb (20211201) SDK Library for Python
milvusMilvus is a high-performance, cloud-native vector database built for scalable vector ANN search
WeKnoraLLM-powered framework for deep document understanding, semantic retrieval, and context-aware answers using RAG paradigm.