1) If you have not done so already, create a fork of the Umple repository and clone it to your local machine.
2) Create a new branch to make your changes in.
3) Run all existing tests and make sure that they all pass.
4) Create an issue for the work you are planning to do, or edit an existing issue.
5) Write test cases (which initially fail) for the expected results of your work.
6) Implement your changes. As you make them, commit them in logical chunks and keep your commit messages organized.
7) Ensure that your test cases pass after you finish your implementation.
8) When you are done, update your fork as shown in Step 8 under "Pull Requests" in umple/CONTRIBUTION.md (github.com)
9) Run your tests and all existing tests, and ensure that everything passes.
10) Create a pull request for your work, post it on its corresponding the issue page, and ask for a code review through the "Reviewers" section of the pull request, or Umple-dev.
11) Iterate the above as needed.
12) If you are a committer, then merge "everything" required to keep the repository in a valid state.
See also ContributionProcessToUmple for a list of best practices to follow when following the above steps.