UCOSPLogKarinNg

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

Each UCOSP participant is asked to log all their accomplishments as well as the difficulties they have getting set up to understand Umple and other experiences they have. Difficulties might include 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. Mention issue numbers and revision numbers in your log to help create hyperlinks.

Log entries in reverse chronological order

Month Day year

Focus Plan

  • Largely going to focus on generation of entity-relationship diagrams (Issue 480 (on Google Code))
    • Write code for the generation of the ER diagrams in graphViz

December 3rd, 2014

  • Worked on Issue 480 (on Google Code)
    • Created tests for coloured and derived attributes
    • Added tooltips for attributes
    • Added tooltips for associations
    • Got all the tests working again, after some code modification
    • Committed the generator for ER Diagrams

December 2nd, 2014

  • Worked on Issue 480 (on Google Code)
    • Put the entity generation into umpleonline

November 26th, 2014

  • Worked on Issue 480 (on Google Code)
    • Implemented weak entities and relationships
    • Finished abstracting the code

November 24th, 2014

  • Worked on Issue 480 (on Google Code)
    • Created an abstract class for the common code
    • Move the previously extracted common code into the abstract class
    • Attached the class and er diagrams to the abstract class
    • Tested the new structure, fixed bugs to get it working, extracted a bit of the structure into the abstract class

November 22nd, 2014

  • Worked on Issue 480 (on Google Code)
    • Added inheritance
    • Added key attributes
      • NOTE: when adding an underline to the label in graphviz, the underline doesn't appear if looking at the image of the .gv file. It only appears once converted to a .svg file
    • Added double ellipses for multi-valued attributes
    • Added dashed ellipses for derived attributes
    • Added tests for the above
    • Moved a bit more code into the library

November 20th, 2014

  • Worked on Issue 480 (on Google Code)
    • Added the ability to create relationships with attributes
    • Added more test cases (reflexive relationships, relationships with attributes, etc.)
    • Created the library for the common code between classes and er diagrams
      • Fiddled around a bit with it to make sure it's working
      • Put some of the functionality into the library, still a work in progress

November 17th, 2014

  • Received help from the professor to get the test working (for a basic ER file)
    • I missed adding the declaration of the ER file into umple_core.grammar
    • Note for future students: Adding a generation file required:
      • Modify src/Generator.ump to include your generator file (requires a class and a use statement) -- this should allow you to compile the file when you run a build
      • Modify src/Main_Code.ump to include your generator name (this, along with umple_core.grammar allows you to use your generator by calling generate generator_name in unit tests)
      • Modify src/umple_core.grammar to include your generator name (see above point)
      • If all else fails - grep a similar generator, first by filtering the .ump files to restrict the returns, and then without restriction (to find what the previous generator modified)
  • Current implementation - able to display entities, attributes, and basic relationships (without attributes on relationships)
  • Wrote test cases
    • Tested for entity/attribute display (and with attributes hidden)
    • Tested for variety of relationships (lack of name, 1-1 relationship, etc.)

November 16th, 2014

  • Wrote the code to generate a very basic ER diagram
  • Wrote a test case for the ER Diagram
  • Spent a lot of time fiddling to make sure the ER diagram was compiling and generating the corresponding .java file
    • For the ER file to compile, it needed to be declared in "generator.ump" (a class, as well as a use statement)
    • The java file did not appear and this baffled me for a while; I eventually realized I needed to refresh the project for it to appear
  • Encountered another problem in which the test wouldn't run using the ER generator file I created.
    • It worked with if I tried to generate it using the class diagram generator so I know it's not a problem with the test case itself - it seems as though it does not know how to generate it using the ER generator file (A missing link?)

November 13th, 2014

  • Started working on a layout for ER diagrams
    • Looked at the major aspects of diagram (entities, attributes, relationships, inheritance, etc.) and how to connect them to the current class implementation (for extraction)
  • Started on putting together the entity generation file
    • Set up the outline (pseudocode) of the generator

November 10th, 2014

  • Prepped for committing Issue 466 (on Google Code) - tested, tried on new build, etc.
  • Committed r4735 (on Google Code)
  • Fixed some mistakes (spacing issues, unnecessary files) to r4738 (on Google Code)

November 6th, 2014

  • Made modifications to the formatting, based on professor's advice
    • Biggest change was dealing with the spacing (there was too much space when taking the literal code, but we want to preserve the indentation)
    • Strange problem in which transition action always returns each line with an extra two spaces more. This does not occur with state actions and activities, even though the same code for the spacing is used.

November 4th, 2014

  • Worked on Issue 466 (on Google Code)
    • Made it so tooltips wouldn't display actions/guards if they have been hidden by the user
    • Added code to deal with timed transitions
    • Wrote tests for special cases
      • Wrote test for hiding actions for states + transitions
      • Wrote test for hiding guards for transitions
      • Wrote test for auto-transitions
      • Wrote test for timed transitions
      • Wrote test for parameter transitions

November 3rd, 2014

  • Worked on Issue 466 (on Google Code)
    • Implemented some tests for state tooltips
      • Normal states
      • Nested states
      • States with entry action - less than 5 lines, 5 lines, more than 5 lines
      • States with exit action - less than 5 lines, 5 lines, more than 5 lines
      • States with do activity - less than 5 lines, 5 lines, more than 5 lines
    • Implemented some tests for state transitions
      • Transition from state to itself
      • Transition from state to another state
      • Transition from state to nested state
      • Transition from nested state to nested state
      • Transition with a guard
      • Transition with action - less than 5 lines, 5 lines, more than 5 lines

October 30th, 2014

  • Worked on Issue 466 (on Google Code)
    • Finished implementing most of the transition tooltip (from Z.Z to Z.Z, guard, transition action code, transitions from start state to another state)
    • Sanity checking - seems to work
  • Still need to implement:
    • Test cases
    • Comment capturing for states (will probably do this in a separate patch)

October 28th, 2014

  • Worked on Issue 466 (on Google Code)
    • Finished implementation of the state tooltip

October 24th, 2014

  • Worked on Issue 466 (on Google Code)
    • Implemented the entry/exit activity into the tooltip for the states

October 22nd, 2014

  • Worked on Issue 466 (on Google Code)
    • Implemented the path for the state tooltip (for nested states)

October 21st, 2014

  • Looked through and got a better understanding of the state machine code overall
  • Looked through the umpleonline state machine documentation to get an understanding of the possible cases (to come up with test cases)
  • Implemented the formatting of the state tooltip for Issue 466 (on Google Code) - small question about the substate formatting

October 14th, 2014

  • Started looking at the state machine tooltips for Issue 466 (on Google Code)
    • Figured out where the tooltips are generated
    • Tested implementing a better format
    • Mostly straight-forward but a possible trouble point - Transitions seem to be using the title, and the tooltip is only shown on the actual transition (and not the label) - going to have to figure out how to change the tooltip on the label

October 10th, 2014

  • Committed the changes to the class tooltip
    • Made a mistake committing and reverted - for reference, you can do this by merge -c -<revision you wish to revert to> . which will change all the files in your local repository to what they were in the revision you passed in. You can then commit them again; if you only wish to revert certain files, you can undo the changes to the other files before committing.

October 9th, 2014

  • Sanity checked my modifications (in case anything happened to the files when updating) for Issue 466 (on Google Code)
  • Created a patch, ran it through a clean version - built okay
  • As emailed from the professor - learned how to fix a problem with the build
umpleSelf:
     [java] cruise.umple/src/Master.ump
     [java] Warning 45 on line 411 of file "Generator_CodeEcore_Model.ump":
     [java] Processed cruise.umple/src/Master.ump.
     [java] Attribute 'order' in class 'EcoreGenericTypeArgument' is in the key. Initializing it will result in all instances having this same value and being treated as equal
     [java] Warning 45 on line 242 of file "Umple.ump":
     [java] Attribute 'root' in class 'ConstraintTree' is in the key. Initializing it will result in all instances having this same value and being treated as equal
     [java] Warning 45 on line 285 of file "Umple.ump":
     [java] Attribute 'left' in class 'ConstraintOperator' is in the key. Initializing it will result in all instances having this same value and being treated as equal
     [java] Warning 45 on line 285 of file "Umple.ump":
     [java] Attribute 'right' in class 'ConstraintOperator' is in the key. Initializing it will result in all instances having this same value and being treated as equal
     [java] Error 110 on line 2235 of file "Umple_Code.ump":
     [java] Interface name 'Iterable<ConstraintVariable>' must be alphanumeric and start with an alpha character or _

qaLandingPage:
     [echo] Creating a QA Landing Page
     [copy] Copying 1 file to /Users/karinng/Documents/UmpleClean/umple/dist/qa

BUILD FAILED
/Users/karinng/Documents/UmpleClean/umple/build/build.xml:7: /Users/karinng/Documents/UmpleClean/umple/build/build.xml:15: The following error occurred while executing this line:
/Users/karinng/Documents/UmpleClean/umple/build/build.umple.xml:467: The following error occurred while executing this line:
/Users/karinng/Documents/UmpleClean/umple/build/build.umple.xml:73: Java returned: 1

with

svn update
cp lib/umple.jar dist

or using the first-build ant

October 7th, 2014

  • Fixed some bugs
    • Spacing issues certain cases in which the edges wouldn't be flush with the node
    • Fixed the Interface bug
  • Ran code on all the *.ump files (using a script) to convert them into svg; all seem to be working
  • Tested on the metamodel; seems to be working

October 6th, 2014

  • Implemented class diagram tests for Issue 466 (on Google Code)
    • Test for Abstract
    • Test for Associations -- found a spacing bug, fixed
    • Test for Attributes
    • Test for an empty class
    • Test for interfaces -- found a bug, yet to fix
    • Test for Methods
    • Test for many classes (>= 200); the behaviour is different because the default behaviour causes a file to generate that is too large for graphviz to handle
    • Test for Abstract when there are many classes
  • Encountered a strange problem - adding certain tests, if the *.txt file being compared was wrong in a certain way, the unit test would hang instead of failing
    • For example, if the *.txt file only had "a" in it, it would hang. However, if it had the correct output, with an extra "a" at the end, if would fail
    • This only started occurring after I had added ~6 tests to the java file. Still not sure of the cause but it works if the *.txt file has the correct output
    • Restarting Eclipse may have solved the issue; it doesn't seem to be happening anymore but will keep a look out for the problem

October 2nd, 2014

  • Worked on Issue 466 (on Google Code)
    • Fixed the bug with abstract classes
    • Spent time fixing the output (making it more like the original; there were many spacing issues)

October 1st, 2014

  • Fix to Issue 466 (on Google Code) - modified the code such that if there are too many classes, it returns the original graphviz classes (without the added tooltip functionality). Otherwise, it returns the correct tooltip functionality
    • This needed to be done because with the tooltip functionality, the file for the metamodel was too large and couldn't be properly converted into an SVG
    • Tested with local umpleonline; seems to be working!
    • Tested with metamodel; seems to be working!

September 27th, 2014

  • Retired my laptop and subsequently had to set up the environment again
    • Re-installed everything
    • Checked out the build, and an extra build for testing
    • Set up a local umpleonline and graphviz
    • Applied patches of what I was working on from before

September 25th, 2014

  • Bug in the metamodel due to the change in the class generation tool
    • Managed to make it so the SVG is generated without any errors but the SVG seems blank. Emailed the professor about the issue
  • Wrote a script to go through the .ump files and change them into .gv and .svg files
    • Used this to check if the fix has broken any of the umpleonline examples; seems to be alright

September 23rd, 2014

  • Made the modification to the output as suggested by professor (and updated/re-tested)
    • This did cause an issue with the distance between the edge and the node and required a bit of fiddling to fix
  • Also realized a mistake I made in the javascript (for highlighting the functions) and fixed
  • Sent a patch for Issue 466 (on Google Code)

September 21st, 2014

  • Third day of code sprint
  • Encountered an issue where the compiler would hang at template.test
    • This was because I failed to delete a file during "teardown" of a test case
  • Kept getting a failed test in the qa page - this seemed to be because I recreated a test file and it was failing on the original (delete) test file...

September 20th, 2014

  • Second day of code sprint
  • Implemented ability to highlight method code in the code-window when clicked (Issue 466 (on Google Code))
  • Implemented tests for the class diagram generation (for methods + attributes)
  • Fixed graphviz display glitch (space around each class)
    • Added "margin=0" which removed the spacing around nodes with attributes and methods
    • Nodes without attributes or methods - increasing its cellpadding seemed to fix the problem

September 19th, 2014

  • The past couple days, I've implemented the change to the graphviz generation code
    • The "tooltip" for each record won't work with Issue 466 (on Google Code) because the tooltip needed to change depending on the line, while the "tooltip" could only be assigned for a full node
    • Modification to graphviz generation: instead of using records, inserted HTML code into each node
    • An extra bonus of using html code is that I can also attach a href to each row, which will help when I want to be able to highlight the code specific to the method
  • First day of code sprint
  • Fixed a display bug (in which the newly created class diagram would have extra lines)
    • Tried to solve it using various attributes:
      • "border" - this wouldn't give the break between the class name and attributes
      • "cellborder" - this would add in lines for every row
      • "border" + "cellborder" - this would result in double-lines
      • "sides" - this didn't work because my graphviz version wasn't correct and decided it'd be better to avoid using it lest others experience issues because of their graphviz version
    • Found the solution: inserting <hr/> in between the rows
  • Got help from Andrew with creating tests for gv generation (partial/full)
  • Managed to get the attributes to popup the necessary information when hovered over (Issue 466 (on Google Code))
  • Managed to get the methods to popup the necessary information when hovered over (Issue 466 (on Google Code))

September 16th, 2014

  • Worked on Issue 466 (on Google Code)
    • Tried to figure out how to change what would popup (tooltip) based on the area hovered over on a single node
    • Explored Dot (GraphViz) and how its syntax works a bit more to come up with a solution; possible fix - inserting HTML into the node
    • Also spent a considerable amount of time being distracted by "umple_tooltips.js", but was irrelevant to the part of Issue 466 (on Google Code) I'm working on (the tooltip corresponding to the popup for the methods is using the title, while "umple_tooltips.js" assigns the content, and is primarily used for the pane). I experimented with re-assigning the content for the node with little luck, and eventually came to the conclusion it wouldn't even be a particularly efficient solution. Regardless, I got a much better understanding of the Javascript files and how they're connected.

September 14th, 2014

  • Professor has located the local umplonline graphviz problem - dot (GraphViz) was located in the wrong file ("/usr/bin/dot" instead of "/usr/local/bin/dot", which is the directory called in "compiler.php")
    • A simple solution is simply to link the directories (ln -s /usr/bin/dot /usr/local/bin)
    • Problem - the error message displayed isn't correct. I'll be working on fixing that particular error; Created Issue 628 (on Google Code)
  • Looked through "curise.umple/src/Generator_CodeGvClassDiagram" to get an understanding of GraphViz generation for Issue 466 (on Google Code)
  • Created a patch to fix Issue 628 (on Google Code)

September 13th, 2014

  • Checked Nabil's fix -- seems to work for me
  • Installed GraphViz
  • Encountered an issue with VirtualBox (would not allow me to run my Ubuntu instance). This was resolved by changing my version (4.3.12 has a bug running Ubuntu on Windows)
  • Tried to test my local version of UmpleOnline with GraphViz - I get an error: Diagram is out of synchronization with the text due to selecting Manual Sync or an error in the text, with additional explanation To fix: edit the text or click undo. This occurs regardless of what is in the umple textual code (even nothing will cause the error once you try either of the GraphViz options)
    • Seeking guidance for the issue and in the meanwhile, looking at the files to see if I can find a clue behind the issue

September 10th, 2014

  • Earlier this week, I emailed Tim about issues I'm interested; I settled on Issue 480 (on Google Code) for the UGProject, and Issue 466 (on Google Code) to ramp up
  • Took a look at brief look at Graphviz for a basic understanding before starting on Issue 466 (on Google Code)
  • Setup local UmpleOnline server - I had an issue in which I was thrown a 403 and wasn't able to access the home directory on the server. I "fixed" this issue by replacing the lines
Order deny,allow 
Allow from all

to

Require all granted
  • As others have mentioned, I also have trouble compiling within Eclipse; sticking with command line for now

September 7th, 2014

  • Finished going through the resource documents
  • Went through the issues and found a couple I'm interested in

September 6th, 2014

  • Went through the DevelopmentSetUp document
    • Installed the plugin, svn, ant, php, ruby, rake
    • Encountered a problem in which the errors failed to disappear after setting the properties. I realized there might have been a discrepancy due to the way I set up the jre (I had put the jre into the eclipse folder instead of letting it use openjdk). I removed the jre from the eclipse folder and the errors disappeared.
    • Also had issues with JUnit errors but after building again and making sure php, ruby, and rake were installed (they were not), the errors disappeared
  • Started going through the suggested documents (the user manual, philosophy and vision...)

September 2nd, 2014

  • Installed VirtualBox and set up an Ubuntu instance
  • Installed Java and Eclipse
  • Played around a little with UmpleOnline; ran some examples to get a feel for it