Skip to content

Instantly share code, notes, and snippets.

@TimLethbridge
Created November 28, 2013 02:00
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save TimLethbridge/7686202 to your computer and use it in GitHub Desktop.
Save TimLethbridge/7686202 to your computer and use it in GitHub Desktop.
Description of the Umple Project for Contributors

Umple Project Description

Umple (http://www.umple.org/) is a technology for raising the abstraction of programming and allowing easy modeling by programmers. The Umple project includes a compiler written in itself, an Eclipse plugin, a command line tool and a website for manipulating models (http://try.umple.org).

Overview

Umple stands for 'UML programming language', 'Ample' and 'Simple'. It is a technology for what we call model-oriented programming (MOP). In MOP, developers model and program simultaneously. Models, written textually in the Umple language, are embedded in base programming languages like Java, C++ and Php, or vice-versa. Base language code is generated from the Umple model, and is compiled along programmer-written base language code to produce a complete system.

This allows developers to work at the high level of abstraction allowed by models, while at the same time taking advantage of all the tools that have been developed for people writing traditional source code. Umple also allows you to edit and generate model diagrams (state machines and class diagrams).

Potential tasks for contributors

A suggested list of potential projects can be found by looking at the issues list and filtering according to issues tagged ProjectUG (http://projects.umple.org). The following are some highlights from the project list.

  • Adding additional software patterns to the Umple language
  • Building example systems in Umple to explore its capabilities
  • Refactoring parts of the code
  • Improving the web tool in various ways
  • Improving how Umple interfaces with other systems such as UML tools

Fixing bugs, improving the testing, and improving code comments would also be valuable contributions.

Recent and ongoing work of contributors to Umple

Here are some of the recent tasks that open-source contributors have worked on, as well as come other ongoing tasks. Almost all the contributors have been students, more than half senior undergraduates. Contributors might find ways to build on and improve this work

  • Adding a C++ code generation capability
  • Improving the analysis Umple performs to check the validity of models
  • Improving the saving and loading of models in the web interface

Requirements to contribute to Umple

We are simply looking for people who are good programmers in any of the base languages that Umple uses.

What contributors will learn

In Umple we follow modern software development techniques, combining model-driven development, test-driven development and continuous integration. We use several different programming languages and model types.

If you want to explore Umple before committing to it, you can go to the Umple home page and follow the many links found there.

Conduct of the Project and Evaluation

Students working on Umple will interact with the three mentors. In January 2014 the following will be the mentors:

  • Dr. Andrew Forward: Key architect of Umple and contributor to it for over 6 years, currently working in industry.

  • Miguel Garzon: A PhD student who has been working on Umple for over four years.

  • Dr. Timothy C. Lethbridge; Professor at the University of Ottawa, and Umple project leader.

Students will have weekly team meetings as Google Hangouts to discuss what they have accomplished each week, what they are expecting to accomplish in the following week, and any problems they have encountered. This is an opportunity for the students to share knowledge and discoveries with each other as well as with the mentors. Each student will be expected to

  • Maintain detailed logs of their progress on the Umple Wiki
  • Contribute bug reports and fixes
  • One substantial project for improving Umple
  • Communicate well with their mentor and each other

Evaluation will be based on the following

  • Producing useful working code (through patches or commits)
  • Completeness and correctness of solution to your assigned issues
  • Following the agile process: small increments, test-driven development, working with version control effectively
  • Quality of design, code and test: Including refactoring, thorough testing, code commenting
  • Effective problem-solving, including independently searching for solutions
  • Communication: Posts to your Wiki log, to Issues, to Umple-Dev and to UCOSP blog about progress, problems and planned work
  • Collaboration: Participating in weekly Google Hangouts and helping others as needed
  • Speed of progress, including rapidly responding to bugs you introduce and no unjustifiable gaps in progress

Contacts

Andrew Forward aforward@gmail.com Miguel Garzon mgarz042@uottawa.ca Timothy C. Lethbridge tcl@eecs.uottawa.ca,

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment