Marama Project Presentation (part 2): --- Johnson & Robert

21
Marama Project Presentation (part 2): --- Johnson & Robert MaramaSUddEN example: simple plan of this presentation.

description

Marama Project Presentation (part 2): --- Johnson & Robert. MaramaSUddEN example: simple plan of this presentation. What We Did (1). Spent a fair amount of time trying to get Marama installed correctly! Played around with Marama – learned about what it’s used for and what it can accomplish. - PowerPoint PPT Presentation

Transcript of Marama Project Presentation (part 2): --- Johnson & Robert

Page 1: Marama Project Presentation (part 2): --- Johnson & Robert

Marama Project Presentation (part 2):--- Johnson & Robert

MaramaSUddEN example: simple plan of this presentation.

Page 2: Marama Project Presentation (part 2): --- Johnson & Robert

What We Did (1)• Spent a fair amount of time trying to get Marama installed

correctly! • Played around with Marama – learned about what it’s used for and

what it can accomplish. • Learned how to create modelling tools using Marama by designing

the:o Meta-model (entities and associations)o View (shapes and connectors)o View Type (view to meta-model mapping)o And the tool’s behaviour (constraints &operations using event handlers,

formulas, etc)).• Used Marama to try and develop a “function block” tool. End

productTool design

Page 3: Marama Project Presentation (part 2): --- Johnson & Robert

What We Did (2)• Improved two existing tools: “MaramaSUddEN” (a supply

chain modelling tool) and “MaramaFB” (a function block designing tool). o Practise writing custom event handlers,o And using Marama API to expand diagram functionality /

behaviour.• Moved to a new version of Marama that was currently

being developed.o Tested our tools “MaramaSUddEN” and “MaramaFB” in the new

version to check for differences in functionality (i.e. bugs). o New version of Marama was very buggy… but we managed to

get our tools to a working state.• Compiled a list of bugs for the new version of Marama:

o Some specific to the new version of Marama, some pre-existing.• Compiled a list of suggested improvements for Marama.

o Mostly addressed “nuisances” in Marama.• E.g. not being able to move files around because absolute paths

were stored in xml files…o Didn’t fix any of these issues (because they would have been

complex tasks).

Page 4: Marama Project Presentation (part 2): --- Johnson & Robert

MaramaSUddEN in the new version of Marama (albeit with most of the bugs fixed).

Page 5: Marama Project Presentation (part 2): --- Johnson & Robert

Bugs & suggested improvements.

Page 6: Marama Project Presentation (part 2): --- Johnson & Robert

What We Did (3)• Part 2 of our objectives: basic GUI and interface

improvements. • Made it possible for “associations” (in the tool model

definer) and “mappings” (in the view type definer) to be created automatically by drawing a single connector.o Previously had to create a shape and set its properties manually…

• Implemented a grey box floating above a shape in the Shape Definer displaying the shape’s name.o Makes it easier for the user to identify which shape is which.

• Added new test cases to the MaramaTests package to test our new code.o Marama uses JUnit to perform unit tests.

• Now confident with the workings of much of the core Marama code and gained useful experience with JUnit.

Page 7: Marama Project Presentation (part 2): --- Johnson & Robert

New features + JUnit.

Page 8: Marama Project Presentation (part 2): --- Johnson & Robert

What We Did (4)• Committed our changes to the Marama SVN

Repository.o Other developers could view our changes and update

their own workspace with what we had done.o Required some changes to Marama data files (xml files)

that weren’t stored in the SVN Repository… had to upload these too.

• Worked on improving the mapping creation process. o Previous process was multi-step and very time

consuming…o Adopted a “Wizard” approach to automate much of the

mapping process.o Speeds up development time significantly.

• Gained experience using the Eclipse SWT (Standard Widget Toolkit) package for visual components.

Page 9: Marama Project Presentation (part 2): --- Johnson & Robert

SVN + Mapping Wizard example.

Page 10: Marama Project Presentation (part 2): --- Johnson & Robert

What We Did (5)• Part 3 of our objectives: advanced GUI improvements. • Added a “dynamic key” feature to Tool diagrams .

o Creates a unique key value for new shapes on creation.• Added a new method to the API to duplicate shapes.

o Takes in an instance of a MaramaShape and returns another MaramaShape that is a copy of the original.

• Allowed shapes to have a default size when created.o Previously had to drag to size wanted.o Now has both – click for default, drag to specify size.

• Continually updated the SVN Repository with our new code.o Constantly finding and fixing bugs as well.

• Used test suite to identify and fix build breakages.o Some in Marama itself, most because of us.

Page 11: Marama Project Presentation (part 2): --- Johnson & Robert

New features.

Page 12: Marama Project Presentation (part 2): --- Johnson & Robert

New features.

Page 13: Marama Project Presentation (part 2): --- Johnson & Robert

What We Did (6)• Must Have objectives completed.• Could Haves: more GUI improvements.

o Dynamic anchor points for connectors onto shapes (incomplete – too complex).

o Ability to have buttons (+ event handlers for them) on shapes (complete).

• Revised earlier bug-list.• Investigated and fixed several visual bugs:

o Connectors not touching the sides of non-rectangular shapes.o Square brackets being continually added to some text fields (fixing

this fixed many serious issues associated with the new version of Marama).

o A few minor bug fixes too.• Fixed several failing test cases in the MaramaTests package. • Prepared for reports and presentations.

Page 14: Marama Project Presentation (part 2): --- Johnson & Robert

What We Learned (1) Marama is an example of good object oriented

programming, we learned the advantages of designing software this way:◦ Packages are good for code organisation, etc.◦ Commenting code properly helps A LOT.◦ Meaningful package, class, and method names help too.◦ Automated testing makes testing easy and repeatable (Marama

uses JUnit).◦ The Model-View-Controller approach is great (and is the central

theme of Marama itself).◦ Factories, controllers, constants classes, etc centralise certain

common functionalities and makes things easier to change.◦ Singletons and reusing object instances prevent unnecessary

object creation and increase performance.◦ Extensive use of interfaces and abstract classes has many

advantages: ◦ type safety, improved compile time checking, code reuse,

modifying behaviour of super-classes, etc…◦ Use of events / notifications and event listeners to achieve

organised communication between classes is of course beneficial…

Page 15: Marama Project Presentation (part 2): --- Johnson & Robert

What We Learned (2) We gained an idea of the kind of scale that software

solutions often have: ◦ Marama has hundreds of source files and is the result of

collaboration between many people over many years. ◦ There are many more things to consider than there

appears to be on the surface. ◦ Even when using libraries like Eclipse’s SWT, GEF and

EMF, which are supposed to simplify applications by reducing the amount of code that needs to be reinvented, the software solution is still large.

Page 16: Marama Project Presentation (part 2): --- Johnson & Robert

Marama package hierarchy.

Page 17: Marama Project Presentation (part 2): --- Johnson & Robert

What We Learned (3) We learned the benefits of using advanced software

development tools:◦ Jira: an issue management service.◦ SVN: an online source code repository.◦ The Eclipse platform (and the myriad of add-ons / plug-

ins): Reusing a well known and stable platform. Saves having to re-write code for what has already

been done and thoroughly tested. Eclipse debug feature is especially useful.

Page 18: Marama Project Presentation (part 2): --- Johnson & Robert

Final Thoughts on Marama Marama in its current condition has quite a few issues

that can make it rather difficult to use ◦ Bugs, some non user friendly interfaces…

…But the tool in theory would be very useful in a large number of situations.◦ It’s very dynamic!◦ Can be used to create almost any sort of modelling tool.◦ Hence could be used to model nearly anything you put

your mind to. We think that once Marama has most of its critical

issues fixed, it would become a very useful Eclipse tool to use. It would enable users to quickly develop Domain Specific modelling tools for their own (probably special purpose) modelling needs.

Page 19: Marama Project Presentation (part 2): --- Johnson & Robert

References Marama wiki page:

https://wiki.auckland.ac.nz/display/csidst/Welcome. Or just navigate to the UoA wiki dashboard, then click on the “Marama” link. ◦ Has downloads (including Marama source code),◦ Tutorials (including a video tutorial),◦ Presentation slides,◦ Example tools made using Marama,◦ …and more.

Our project objectives and work log page: https://wiki.auckland.ac.nz/display/csidst/Marama+Project+Management+2008. Can be found through the Marama wiki page, but may not be easy to spot.

Page 20: Marama Project Presentation (part 2): --- Johnson & Robert

ThanksWe thoroughly enjoyed our project and would like to thank the following people for all their help and for giving us this opportunity:

•Jun Huh•John Hosking•John Grundy•Richard Li

Also, thanks to The University of Auckland, and everyone involved in The CSI Academy. We learned a lot from Marama, our mentors, and the Academy seminars. We are grateful.

Page 21: Marama Project Presentation (part 2): --- Johnson & Robert

Questions?