Runqing edited this page Dec 15, 2017 · 45 revisions

``Each UCOSP participant is asked to log all the steps they take as they make progress through the semester. This includes difficulties they faced (getting set up, understanding how to model in Umple, using UmpleOnline, code that is difficult to figure out, and development tools that are hard to figure out, or don't seem to work properly). The more log entries added the more we can better get a grip on the usability issues with Umple, and the more we can help future new contributors come up to speed.

Please record entries in reverse chronological order

Log Entries



  • joint.js now has a better interaction for deleting classes, user will need to click on the delete option button to show up the delete "cross" button on the class diagram.
  • delete and edit attribute is working properly.
  • improve the interaction when editing attributes
  • photoSync in joint.js now hide all unrelated icons (class icon, edit delete icon)
  • fix the problem with paper offset that cause flying class box not right under cursor
  • add new action to umple sync that will allows adding and deleting state transition


  • Added feature that joint.js will provide feedback on different mode (which is consistent with the default editing mode).
  • Added a edit icon which enable/disable the text editing on joint.js rendered box. On disable, the whole box is responsible for the joint.js related event (e.g. add association/generalization)
  • Fix issues:
  1. joint.js does not render class box properly when attribute and method display is both deselected
  2. joint.js does not update the size of the interactive region when the size of rendered box is update
  3. joint.js does not work properly on some edge cases:
    1. when click association mode button to disable adding association mode in the middle of adding associations, joint.js graph will stop catching any actions afterwards (same applies to adding generalization)
    2. switch between different editing mode
  • Issue going to work on:
  1. make the joint.js rendering generalization properly as well as better editing experience
  2. delete method/attribute icon does not work properly as expected


  • Implemented and tested add new and delete transition action of umple sync
  • Start working on new action allows editing states, transition labels
  • After that I will hook those up with umple online and a few UI improvement for JointJS state diagram


  • Start improving JointJs State machine
  • Currently I am working on making the JointJs state machine to be a separate option under option list, however, I kind of stuck right now as the event does not hooked to the button.
  • After fixing this issue, I will start implementing new feature that allows modification of JointJs state diagram to update corresponding umple cd=ode


  • Added a new feature that after user to modifying the association link #1127
  • I am starting working on making JJS diagram fully functional


  • Last weekend I fixed the issue that Association failed to removed from code if it is removed from the graph issue #1125
  • Fist approach is done by modifying the complier, however it fail some test that expected it works the old way. Thus For consistency, I force the JJs to name association the way compiler is expecting.
  • Now I will focus more on implement the new action that allows modifying association end


  • After some investigation, I found the problem is actually cause by umplesync. In the buggy case described below, the association generate by JointJs graph is NewClass2_NewClass1, where the parser remove operation is trying to find association with name NewClass1_NewClass2. This inconsistency will cause the remove operation incorrectly skip the association.
  • Debug will start ASAP


  • Further investigation on the problem of deleting association in JointJs, it does not work on a simplest case
class NewClass1

class NewClass2
  * -- * NewClass1;

However, it works correctly on

class NewClass1
  * -- * NewClass2;

class NewClass2

I think this implies that the error is not really a race condition.

  • As discussed in the meeting, I will implement in a new action that modifies association ends after fixing the issue with remove


  • The last week I was experimenting and investigating ways to implementation of allowing user to edit associations in JointJs graph
  • The most proper event to catch is paper.on(link:disconnect) and (link:connect) which will return both old vertices and new vertices as parameter of call back function.
  • The most proper action code I am currently using is remove and add. From my understanding that current editAssociation will need to use two class name to identify the Association it is editing so we cannot use that to update (work flow will be remove->add->update model association index)
  • However in further debugging, I found that the remove action stop working after a few add and remove, this week I will first investigate into this issue before any further implementation on editing association


  • After a few experiment and investigation, I think the best way to fix the problem might be by adding a new action that will modify the current association in the cell (source, target) then update the umple code.
  • Currently I'm trying using remove on pointerdown, add on pointerup, but it is causing issue mentioned earlier, I will still try to figure if there is a way to avoid this, if not I will start implementing the feature above.


  • Add a new PR on the modification I made to fine tuning rendering.
  • Looking into implementing feature that will make moving the association in the graph updating the umple code
  • implemented first approach by adding new action to on(cell:pointerdown) and on(cell:pointerup), however there is a problem that clicking the remove button is also pick by theses two on(event), find or propose walk around to this problem tomorrow.
  • Did not find JointJs State option (in a branch?)


  • Fix render Class box with Attribute
  • Fix input element height, the one using before cannot display some attribute text completely(e.g. String)
  • Fix Class box height, it used to render the box too thick
  • Fix break line between class name and attribute, used to be too thick
  • Add margin to the class name input, it used to overlay with class icon
  • Cosmetic fixing (typo) on inline comment
  • As discussed in meeting, I will make a PR soon after I check nothing breaks with the changes


  • Finish update to umple user manual and added example for new syntax of association class
  • Start working on JointJS, read through the code, try to fix some rendering problem to have better graph display


  • Finished the implementation on association class issue related to 1058. Tests were added. PR waiting for review.
  • Start working on issue 600. Read through recent comment, getting familiar with the project.
  • Question: Should I working on the existing 600 branch or my own one (not yet start any changes, but poking around the project with my local branch)?


  • Further implementation on grammar after discussed in the git issue comment 1058 cause some issue that the parser treat inline association as singleEndassociation it treat* -- * Locationas a single end association [multiplicity: *][otherEndruleName: --][type: *][roleName: Location], which is super suspicious. Further investigation shows that order will have some influence on the result. I will do more investigate on order of different role under association class on Friday, I may not be able to do much before Thursday as I have a midterm.


  • Solidate how multiple roleNames in association class, added a few test before actual implementation, test failed as expected. I will start on the actual implementation tomorrow.


  • Fix the error message of umple compiler, however it seems that the complier using by local umpleonline. However I copy the umple.jar under ..\umpleonline\scripts it works as expected.

2017-9-19 Meeting update TODO:

  • write a few tests for the error message then make the pull request for the error message.
  • start fixing .grammar file and internalParser for possible way to adapt fixing to this issue to association class
  • following up from the last entry, confirm with Tim check hammer the syntax
  • check the php permission problem


  • Fix the error message to print out more informative descriptions of the problem. However a few question is still left (commented in the issue ticket 1058)
  • The problem I encounter earlier seems like I might fail to full build a project while I thought I did.


  • Set up Umple project in Eclipse. The project now successfully build (warning on 9-16 still exists, but now crash the project for what I am doing now).
  • Spent some good hours hook Eclipse to a remote umple command line tool, put down example in a umple file and stepping through the code.
  • Narrowed down the problem at few functions, left break points there. I will keep digging into this problem in the next couple of days.


  • Still familiarize with the project as well as finding the problem related to issue 1058
  • When setting up Eclipse in the step to compiling Umple_Code.ump, received error "[Warning 1009 on line 866 of file "Umple_Code.ump": Method 'setExtraCode' has a name conflict with automatic generated getter/setter methods for attribute 'extracode' in class 'MethodBody'. Please use a different method name] "
  • Run full test on Eclipse but failed some test (further look into the test, those are some part that I haven't added to the eclipse work bench)
  • Not sure if test is needed for this issue since it is just a warning log issue
  • Comment a few notes on the issue page *** QUESTION ***
  • Edited error message error code 19. However after a full build, the change does not show up when I run a local umpleonline.


  • Browsed all open issue, find one small issue that should be easy for me to tackle (1058).
  • Emailed Timothy and got assigned to the issue.
  • Familiaring with the project, reading Architecture page and the project try to find where the bug should happened
  • Narrowed down to \cruise.umple\UmpleInternalParse_CodeClass.ump, \cruise.umple\UmpleInternalParse_CodeConstraints.ump, \cruise.umple\UmpleInternalParse_CodeTraceAssoication.ump,\cruise.umple\src\Main_Code.ump (not sure if it is correctly though, kind of stuck here)


Material Explored

  • Skimmed through all the materials that I have been pointed to.
  • Explored all the resource on GitHub page and checked out the latest repository
  • Tried to played around with the umpll online tool, watched some tutorial video and created some small example of both state machine and class diagram

Development Setup

  • Checked out and successfully full built the latest repository
  • Successfully built and host the local umpleOnline
  • Successfully compiled some simple ump file using umple commandline tool

Eclipse Setup

  • Installed the eclipse with modelling tool and installed umple plug-in
  • Still need to play with the plugin to create some simple project (ETA Sep 15th)

Other Notes and Questions

  • My operating system is MacOs Sierra with php 5.5

  • While playing with umpleOnline tool, at some point the diagram area reject to allow any editing (No response when clicking any diagram). I will keep track of this and see if it is something easily reproducible (It doesn't cause further issue as refreshing the page will fix it).

  • Although local umpleOnline works, I receive this message from php "PHP Notice: Undefined index: languageStyle in UMPLEPATH/umpleonline/scripts/compiler.php on line 76" (As for the security permission mentioned in the meeting, it seems only using apache will have such issue)

These Questions is more likely to be a personal interest so I don't want to use meeting time for them

  • Why umpleOnline does not allow users to edit the label on association or transition (not really sure if it is my problem though)
Clone this wiki locally
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.
Press h to open a hovercard with more details.