Status Report

Project: UCMNav Eclipse Plug-in

Iteration: Milestone Four

Implementation Status

In this iteration, we continued to expand what could be done with the tool. We now support multiple maps per file, which up to here constituted a major problem holding up implementation of ReqElem[*]Stub. Furthermore, we've implemented components, component binding/undbinding with other components or path elements, path forks, path node labels, component labels, etc. We have a nice alpha version of the system; we can't do everything yet but we know where we are headed.

Alpha build demo

The current state of the system is shown in the following recorded demo. Note that it does not show off all features, but it will give the reader a decent idea of what we have built. The demo is a live recording of the plugin running in Eclipse 3.0. Click here to view demo.

screenshot, map 1

  • Screenshot 1: Notice components, colors, multiple files in one UCM

screenshot, map 2

  • Screenshot 2: Notice components are bound, or-forks, and-forks, path node labels, component labels


(Thank you CVS log & StatCVS)

  • We now run javadoc on the plugin on each build.
  • We now run junit tests on the plugin
  • We now support multiple paths in one map
  • We now support components
  • We now support version 5 of the URN model
  • Implemented property view behaviour for booleans
  • We now support component colors, implemented property view behaviour for colors
  • We now show components on a seperate layer than the paths
  • The parent model element in the XMI serialization is now the URNspec
  • We now support path node labels
  • We created our test plan, JUnit Test Plan in this iteration, after planning our architecture.
  • We've started implementing tests
  • We implemented the undo/redo test framework for existing commands
  • Cleaned up our existing commands
  • We now support binding/unbinding components with other components
  • We now support binding/unbinding components with their containing path nodes.
  • We can now delete components
  • We can now delete empty points
  • We now support component labels
  • We now support multiple maps per file
  • Start of perspective
  • We now support (partially) or-forks and and-forks.

In terms of the proposed milestone iterations, we are late in quality assurance. Our prototype has evolved nicely. Our main problem is that we realized that it was impossible for us to define our architecture milestone as required because we aren't experienced enough with Eclipse and because of the such large number of classes in our project and in the framework. It is simply impossible for us to define our exact public interface right now, given our experience and time allocation. We're not worried about this as most of our architecture is imposed on us and we're successfully developing our tool by adding new features to it daily. It might not be great from a software engineering point of view (we should have had better planning) but we see why, in industry, most applications end up being underdocumented/underplanned/undertested.

Risks or Issues List

The reader will find, in the following table, a list of risks possibly impacting our project presently, as well as thoughtful followup on past risks.

Date Entered Risk or Issue Description Resolution Status
05 Jan 2005 Eclipse is an evolving platform Eclipse/GEF is rapidly evolving and the current version (3.1) has not yet been released as stable. We have decided to settle on version 3.0.1 of all Eclipse tools that we will be using. Closed
05 Jan 2005 New Tools We are using various tools that we don't necessarily have experience with: Ant, BugZilla, CVS, DOORS, Eclipse+GEF+EMF, JUnit, Rational XDE, TWiki, UCMNav See below Closed
05 Jan 2005 Varying schedules Must find way so that all team members can contribute equally, regardless of schedule differences. Semester over Closed
05 Jan 2005 Difficult deployment We may have to support different versions of Eclipse, testing different operating systems, distributing the plug-in with and without Eclipse We have decided on supporting only Eclipse/GEF version 3.0.1 and EMF v2.0.1, testing only on Windows XP SP2 and distributing the plug-in without Eclipse. Closed
23 Jan 2005 New version of the DTD We await the new version of the DTD that we will have to support (read/write). UCM Version 0.23 is already on the website Supporting the DTD is no longer in the scope of our project Closed
23 Jan 2005 Requirements We have defined the requirements definition process in which Daniel Amyot will have an important role but they have yet to be drafted Requirements have been drafted. Closed
15 Feb 2005 Meta-model We await our meta-model draft for the notation's elements to be used by our tool We have received it and integrated it. Closed
15 Feb 2005 Paths We're not sure how paths will be implemented in our system. Must experiment. Experimentation done, success! Closed
15 Feb 2005 Element behaviour We're not sure how we will determine our element's behaviour. We're not sure to what point our meta-model will define this. We want to avoid having to specify this for all elements. We have analyzed and categorized our elements behaviour Closed
15 Feb 2005 Stubs Stubs are the second riskiest UCM element. They have deep implications in many views and the editor but haven't bene prototyped. [The core problem, multiple maps per file, has been solved ] Ongoing
15 Feb 2005 Divide and conquer Requirements need to be divided into micro objectives that can be tracked in our task management system. Until then, we can't plan completion See BugZilla Closed
15 Feb 2005 Unit tests We haven't formally written down our unit tests as they are too closely bound to our architecture. See JUnit Test Plan Closed
15 Feb 2005 Get Coding Not everyone is as familiar with the framework because not everyone was prototyping With the end of the semester, developers have been contributing code much more frequently. Closed
10 May 2005 Views We know what we want for the views, but we've pushed back coding them - Ongoing
10 May 2005 Lack of time We're progressing nicely but the Eclipse learning curve is steep. We should focus on getting the core features done and take care not to spread out efforts over too many features. - Ongoing
10 May 2005 Req Save Backup We're not sure how to hookup to the local history mechanism in Eclipse - Ongoing

New Tools

  • BugZilla/CVS/Rational tools: Already familiar.
  • TWiki: Passed the critical level, very easy to use.
  • Ant/JUnit: Tested on prototypes, learnt in SEG4511.
  • DOORS: Abandoned in favor of TWiki.
  • UCMNav: We have three experts to help us. We are only replicating the tool's basic functionality.
  • Eclipse+GEF+EMF: Developing Java in Eclipse is a breeze. Developing plug-ins with GEF and EMF requires lots of reading and experimenting. Our hello world prototype has allowed us to feel comfortable with GEF and EMF.

Tasks in Progress or Completed This Iteration:

List the tasks that each member of the project worked on last iteration.

Task Name Description Who Worked on it %complete
Project automation javadoc/junit tests in automated build Jean Philippe Daigle? 75%
Multiple Paths Multiple paths in one map Etienne Tremblay 100%
Req Comp Components Jason Kealey 100%
Upgrade metamodel To version 5 Etienne Tremblay 100%
Property view work boolean/color support Jason Kealey 100%
Req Comp Color Optional color components Jason Kealey 100%
Different layers Seperate path nodes, paths, components on different layers Etienne Tremblay 100%
Req Save, Req Open The parent model element in the XMI serialization is now the URNspec Jason Kealey 100%
Req Labels Path node labels and component labels Jordan Mc Manus? 100%
Tests & JUnit Test Plan Define, code & tools Jason Kealey, Jordan Mc Manus?, Jean Philippe Daigle? 100%
Req Comp Comp Bind, Req Comp Comp Unbind, Req Comp Path Bind, Req Comp Path Unbind Binding/unbinding Jason Kealey 100%
Req Elem Delete Components and empty points Jason Kealey 100%
Req Save, Req Open Multiple maps per file Jason Kealey, Etienne Tremblay 100%
Perspective Start of jUCMNav perspective Etienne Tremblay 100%
Req Elem Or Fork Implementation of the or-forks and connection routers Jean Philippe Daigle? 80%
Req Elem And Fork Implementation of the and-forks and connection routers Jean Philippe Daigle? 80%
Milestone Four Milestone Four document redacting & review Etienne Tremblay, Jason Kealey, Jean Philippe Daigle? 100%
Views Views Olivier Clift Noel? ?

Tasks to be worked on next Iteration:

List the tasks that each member of the project is planning on working on this iteration.

Task Name Description Who Will Work on it
Req Elem And Fork, Req Elem Or Fork Clean up code, remove bugs, test Jean Philippe Daigle?
Req Elem And Join, Req Elem Or Join Code & test Jean Philippe Daigle?
Req Elem Wait, Req Elem Timer, Req Connections Code & test Jean Philippe Daigle?
Req Elem Dynamic Stub, Req Elem Static Stub, Req Elem Stub Actions, Req Elem Delete Code & test Etienne Tremblay
Req Save Backup, Req Elem End Point, Req Elem Start Point, Req Elem Start Point Attributes, Req Elem Direction Arrow, Req Export Bitmap Code & test Jordan Mc Manus?
Req Help About, Req Browse History, Req Browse Model, Req Help On Line, Req Documentation Code & test Olivier Clift Noel?
Many bugfixes / improvements not covered by requirements Code & test Jason Kealey
Topic revision: r5 - 24 Aug 2005 - 13:21:31 - Jason Kealey
This site is powered by FoswikiCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback