MilestoneFourStatusReport - JUCMNAV/projetseg-update GitHub Wiki

Status Report

Project: UCMNav Eclipse Plug-in

Iteration: MilestoneFour

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. <a href="http://jucmnav.softwareengineering.ca/twiki/pub/ProjetSEG/MilestoneFourStatusReport/peyton_jucmnav_alpha_demo.htm">Click here to view demo</a>.

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

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

Highlights

(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, JUnitTestPlan 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 Main.DanielAmyot 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 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 JUnitTestPlan 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 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 ReqSaveBackup 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 Main.JeanPhilippeDaigle 75%
Multiple Paths Multiple paths in one map Main.EtienneTremblay 100%
ReqComp Components Main.JasonKealey 100%
Upgrade metamodel To version 5 Main.EtienneTremblay 100%
Property view work boolean/color support Main.JasonKealey 100%
ReqCompColor Optional color components Main.JasonKealey 100%
Different layers Seperate path nodes, paths, components on different layers Main.EtienneTremblay 100%
ReqSave, ReqOpen The parent model element in the XMI serialization is now the URNspec Main.JasonKealey 100%
ReqLabels Path node labels and component labels Main.JordanMcManus 100%
Tests & JUnitTestPlan Define, code & tools Main.JasonKealey, Main.JordanMcManus, Main.JeanPhilippeDaigle 100%
ReqCompCompBind, ReqCompCompUnbind, ReqCompPathBind, ReqCompPathUnbind Binding/unbinding Main.JasonKealey 100%
ReqElemDelete Components and empty points Main.JasonKealey 100%
ReqSave, ReqOpen Multiple maps per file Main.JasonKealey, Main.EtienneTremblay 100%
Perspective Start of jUCMNav perspective Main.EtienneTremblay 100%
ReqElemOrFork Implementation of the or-forks and connection routers Main.JeanPhilippeDaigle 80%
MilestoneFour Milestone Four document redacting & review Main.EtienneTremblay, Main.JasonKealey, Main.JeanPhilippeDaigle 100%
Views Views Main.OlivierCliftNoel ?

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
ReqElemAndFork, ReqElemOrFork Clean up code, remove bugs, test Main.JeanPhilippeDaigle
ReqElemAndJoin, ReqElemOrJoin Code & test Main.JeanPhilippeDaigle
ReqElemWait, ReqElemTimer, ReqConnections Code & test Main.JeanPhilippeDaigle
ReqElemDynamicStub, ReqElemStaticStub, ReqElemStubActions, ReqElemDelete Code & test Main.EtienneTremblay
ReqSaveBackup, ReqElemEndPoint, ReqElemStartPoint, ReqElemStartPointAttributes, ReqElemDirectionArrow, ReqExportBitmap Code & test Main.JordanMcManus
ReqHelpAbout, ReqBrowseHistory, ReqBrowseModel, ReqHelpOnLine, ReqDocumentation Code & test Main.OlivierCliftNoel
Many bugfixes / improvements not covered by requirements Code & test Main.JasonKealey
⚠️ **GitHub.com Fallback** ⚠️