Kevin Brightwell edited this page Aug 26, 2015 · 1 revision
Clone this wiki locally


UIGU (User Interface Generation for Umple) is a rapid prototyping capability that was initially created by Julian Solano, and then instrumented into UmpleOnline by Ali Fatolahi.

It allows instant generation of a user interface from an Umple model. There is a panel for every class in which data for each instance the class can be populated and edited, and in which instances are listed. There is also an ability to 'hook up' associations by either selecting from a pre-existing object at the other end of the association, or creating one. Data saving is available but minimal.

UIGU provides CRUD capabilities Create - Read - Update - Delete operations on objects defined in a class diagram from Umple. Every time the model is changed a new version of UIGU would be created; the data previously saved may or may not be able to be loaded into the new version.


The core objectives of UIGU are:

  1. To allow modelers to explore instantiations of their models rapidly. The idea is that seeing a UI generated from a model will help modellers understand their models better, and so improve them.
  2. To help teaching about modelling in the classroom and in lab exercises, for the same reasons as in objective 1.
  3. To provide a facility whereby modelers could demonstrate their running model in a graphical manner.
  4. As an added capability of testing an Umple system, since it runs the actual generated code.

Longer range or less important objectives might be:

  1. To allow a basic standalone application to be generated that is usable at a minimum level.

Issues with the current version

It is heavyweight: A whole application has to be installed every time changes are made, consuming far too many resources for an online application.

Vision for the near future

Create a new version called UIGU2 that would generate PhP code for the same functionality as the present system, and then add additional capabilities over time.

As a first iteration, UIGU2 could just create a data entry panel for each class, with buttons to switch between panels.

In a second iteration, lists of existing created objects could be displayed

In the third iteration, the ability to create associations could be added.

Next, the ability to iterate through states could be added

Saving of data would be simply done by serializing objects of each Umple class to a file that could be reloaded. The serialized data could simply be lists of objects, or the list of methods called (which could be replayed).