|
Key Links
Downloads
For Researchers
Social Media
Mailing Lists
Team
Development status
Related Sites
|
Model-Oriented Programming - Umple.orgUmple is a modeling tool and programming language family to enable what we call Model-Oriented Programming. It adds abstractions such as Associations, Attributes and State Machines to object-oriented programming languages such as Java, Python, C++ and PHP. Umple can also be used to create many kinds of software engineering diagrams textually. Umple creates reliable code from highly-readable abstractions. The resulting system has many fewer lines than if programmed in a typical programming language, since developers avoid having to write a lot of 'boilerplate' code. AI-code generation is another way to help developers avoid having to write that code, but the difference with Umple is that the boilerplate never has to be inspected or maintained, and has been tested so that it is reliable. Umple can be combined with AI code generation: simply ask your AI to generate a data model or state model in Umple from requirements. This capability is available in the UmpleOnline Umple is an open source project hosted on GitHub that can be used for real systems in industry. The Umple compiler itself is written in Umple. Any Java, Python, C++ or PHP project can be adapted to use Umple. Umple has also been found to help students learn to design software rapidly in the classroom. Umple works online, or can be downloaded for use on the command line, in VS-Code and other IDEs.. ExampleThe following example shows how to declare attributes and associations in the first steps when modeling a system using Umple. You can click here to load this directly into UmpleOnline.
class Student {}
class CourseSection {}
class Registration
{
String grade;
* -- 1 Student;
* -- 1 CourseSection;
}
The class diagram to reflect the Umple code above is shown below.
Many other examples can be found in the Umple user manual, and in UmpleOnline (select the diagram type from the Examples menu, then choose an example from the Select Example menu). Some examples in UmpleOnline can be directly executed. Origin of the name UmpleThe word 'Umple' is a play on words, meaning 'Simple', 'UML Programming Language' and 'Ample'. Let us expand on these concepts a little: Simple: Umple is intended to be simple from the programmer's perspective because, a) there is less code to write, and b) there are fewer degrees of freedom than either Java or UML. Code that is eliminated includes boilerplate code for adding, deleting and modifying links of associations, as well as constructors and methods for accessing attributes. In all these cases, and many others, Umple provides sensible default implementations. UML Programming Language: Umple adds key features of UML to its target languages. Namely, the addition of association constructs and the simplification of attribute declarations. Ample: Despite the restrictions imposed by the deliberate simplicity of Umple, it is intended to have sufficient power to program the functional layer of most kinds of systems. Some recent advances (for more details see release notes)
|