# Umple

> language for both object-oriented programming and modelling with class diagrams and state diagrams

**Wikidata**: [Q16958879](https://www.wikidata.org/wiki/Q16958879)  
**Wikipedia**: [English](https://en.wikipedia.org/wiki/Umple)  
**Source**: https://4ort.xyz/entity/umple

## Summary
Umple is a programming language designed for both object-oriented programming and modeling, supporting class diagrams and state diagrams. It was developed at the University of Ottawa and runs on the Java Virtual Machine (JVM). The language is statically typed and follows an object-based paradigm.

## Key Facts
- **Instance of**: Programming language and object-based language
- **Designed by**: University of Ottawa
- **Inception**: 2008
- **Platform**: Java Virtual Machine (JVM)
- **Typing discipline**: Static typing
- **Programming paradigm**: Object-oriented programming
- **License**: MIT License
- **Latest version**: 1.29.0 (released 2018-08-30)
- **Website**: [http://www.umple.org](http://www.umple.org)
- **Source code repository**: [GitHub](https://github.com/umple/umple)
- **Programming language**: Java

## FAQs
### Q: What is Umple used for?
A: Umple is used for both object-oriented programming and modeling, particularly for creating class diagrams and state diagrams.

### Q: Who developed Umple?
A: Umple was developed at the University of Ottawa.

### Q: What programming language does Umple run on?
A: Umple runs on the Java Virtual Machine (JVM).

### Q: What is the latest version of Umple?
A: The latest version of Umple is 1.29.0, released on 2018-08-30.

### Q: Is Umple open-source?
A: Yes, Umple is open-source and licensed under the MIT License.

## Why It Matters
Umple is significant as it bridges the gap between modeling and programming, allowing developers to generate code directly from class and state diagrams. This approach streamlines the development process by reducing the manual effort required to translate designs into executable code. By running on the JVM, Umple benefits from Java's cross-platform compatibility, making it accessible across different operating systems. Its static typing and object-oriented paradigm ensure robust and maintainable code structures. The language's development at the University of Ottawa highlights its academic roots and commitment to educational and research applications. Overall, Umple provides a practical tool for developers and educators seeking an efficient way to integrate modeling and programming.

## Notable For
- **Modeling Integration**: Umple uniquely combines modeling (class and state diagrams) with programming, automating code generation from design artifacts.
- **JVM Compatibility**: Runs on the Java Virtual Machine, ensuring cross-platform functionality and leveraging Java's ecosystem.
- **Static Typing**: Adopts static typing, enhancing code reliability and performance by catching errors at compile time.
- **Open-Source MIT License**: Provides flexibility for use, modification, and distribution under permissive licensing terms.
- **Academic Development**: Designed by the University of Ottawa, reflecting its educational and research-oriented origins.

## Body
### Overview
Umple is a programming language designed to facilitate both object-oriented programming and modeling. It supports the creation of class diagrams and state diagrams, enabling developers to generate code directly from these visual representations. The language was developed at the University of Ottawa and runs on the Java Virtual Machine (JVM), ensuring cross-platform compatibility.

### Development and Release
- **Inception**: 2008
- **Latest Version**: 1.29.0 (released 2018-08-30)
- **Source Code**: Hosted on GitHub at [https://github.com/umple/umple](https://github.com/umple/umple)
- **Website**: [http://www.umple.org](http://www.umple.org)

### Technical Specifications
- **Platform**: Java Virtual Machine (JVM)
- **Typing Discipline**: Static typing
- **Programming Paradigm**: Object-oriented programming
- **License**: MIT License
- **Programming Language**: Java

### Key Features
- **Modeling Support**: Umple allows developers to create class diagrams and state diagrams, which can be used to generate code automatically.
- **Cross-Platform Compatibility**: Running on the JVM ensures Umple can be used across different operating systems.
- **Static Typing**: Enhances code reliability by catching errors at compile time.
- **Open-Source**: Licensed under the MIT License, allowing for flexible use and modification.

### Significance
Umple's integration of modeling and programming streamlines the development process, reducing the manual effort required to translate designs into code. Its academic development at the University of Ottawa underscores its role in educational and research contexts. By leveraging the JVM, Umple benefits from Java's extensive ecosystem and cross-platform support, making it a versatile tool for developers. The language's static typing and object-oriented paradigm ensure robust and maintainable code structures.

## References

1. [The umple Open Source Project on Open Hub: Licenses Page. Open Hub](https://www.openhub.net/p/umple/licenses)
2. [The umple Open Source Project on Open Hub: Languages Page. Open Hub](https://www.openhub.net/p/umple/analyses/latest/languages_summary)
3. [Release 1.23.0. 2015](https://github.com/umple/umple/releases/tag/v.1.23.0)
4. [Release 1.23.1. 2016](https://github.com/umple/umple/releases/tag/v.1.23.1)
5. [Release 1.24.0. 2016](https://github.com/umple/umple/releases/tag/v.1.24.0)
6. [Release 1.25.0. 2016](https://github.com/umple/umple/releases/tag/v.1.25.0)
7. [Release 1.26.0. 2017](https://github.com/umple/umple/releases/tag/v.1.26.0)
8. [Release 1.26.1. 2017](https://github.com/umple/umple/releases/tag/v.1.26.1)
9. [Release 1.27.0. 2018](https://github.com/umple/umple/releases/tag/v.1.27.0)
10. [Release 1.27.1. 2018](https://github.com/umple/umple/releases/tag/v.1.27.1)
11. [Release 1.28.0. 2018](https://github.com/umple/umple/releases/tag/v.1.28.0)
12. [Release 1.29.0. 2018](https://github.com/umple/umple/releases/tag/v.1.29.0)
13. [Release 1.29.1. 2018](https://github.com/umple/umple/releases/tag/v.1.29.1)
14. [Release 1.30.0. 2020](https://github.com/umple/umple/releases/tag/v1.30.0)
15. [Release 1.30.1. 2020](https://github.com/umple/umple/releases/tag/v1.30.1)
16. [Release 1.30.2. 2021](https://github.com/umple/umple/releases/tag/v1.30.2)
17. [Release 1.31.0. 2021](https://github.com/umple/umple/releases/tag/v1.31.0)
18. [Release 1.31.1. 2021](https://github.com/umple/umple/releases/tag/v1.31.1)
19. [Release 1.32.0. 2022](https://github.com/umple/umple/releases/tag/v1.32.0)
20. [Release 1.32.1. 2022](https://github.com/umple/umple/releases/tag/v1.32.1)
21. [Release 1.33.0. 2024](https://github.com/umple/umple/releases/tag/v1.33.0)
22. [Release 1.34.0. 2024](https://github.com/umple/umple/releases/tag/v1.34.0)
23. [Release 1.34.1. 2024](https://github.com/umple/umple/releases/tag/v1.34.1)
24. [Release 1.35.0. 2024](https://github.com/umple/umple/releases/tag/v1.35.0)
25. [Release 1.36.0. 2026](https://github.com/umple/umple/releases/tag/v1.36.0)
26. [Source](https://api.github.com/repos/umple/umple)