MilestoneFiveStatusReport - JUCMNAV/projetseg-update GitHub Wiki

Status Report

Project: UCMNav Eclipse Plug-in

Iteration: MilestoneFive

Implementation Status

In this iteration, we continued to expand what could be done with the tool, with a great push towards improving stability. We now have more explicit rules for what is permitted when editing paths, eliminating most crashing scenarios previously identified in cases where illegal loops were created. We also now support an important client-driven scenario: exporting use case maps as images. The user-friendliness and visual presentation of our application is greatly improved compared to the alpha release produced in the MilestoneFour timeline.

Beta build demo

The current state of the system is shown in the following screenshots. Note that it does not show off all features, but it will give the reader a decent idea of what we have built. A beta release version is now available on this wiki site, for (very) early adopters and testers.

  • Screenshot 1: Various map features and rendering

  • Screenshot 2: Plugin bindings

Highlights

  • Legal information page (EPL license) and contributors
  • Deletion works in several scenarios (stubs, paths, forks, etc.)
  • Safety-checking to disallow illegal loops
  • Professional graphic designer contributed new graphical resources
  • Implementation of the Stub Binding dialog
  • Image exporting works
  • Extracting of all strings for i18n
  • Implemented more tests
  • Fork and Join transmogrification
  • Various fixes related to deploying on Linux
  • Better path tool
  • Metamodel updated to version 7
  • LOTS of bugfixes

In terms of the proposed milestone iterations, we are bit late in quality assurance, but bugs are being logged and addressed in a timely fashion. In concrete terms, many bugs reported by our client using development builds were fixed within 24 hours. Our prototype has evolved into a working system, albeit still showing some rough edges. Most crashing and / or data corruption scenarios known in the MilestoneFour timeline have been eliminated. Use of the jUCMNav tool by early-adopters (our client) in real-world situations has confirmed that quality has improved over the last month; at the same time, some new issues to fix have been logged. Many little things (the spit and polish, if you will) have been fixed for the initial beta trial, such as proper license and credits, better rotation and display of some path nodes, tweaked icons, etc.

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. Most of the legwork here has been done 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. - Closed
10 May 2005 ReqSaveBackup We're not sure how to hookup to the local history mechanism in Eclipse Not easy with XMI; postponed until DTD Closed
13 Jun 2005 Beta deployment Deploying the beta to hereto untested systems might reveal deployment problems We will see soon after 15 Jun Ongoing

New Tools (carried over from previous milestones)

  • 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. The road from prototype to a beta evaluation release has allowed us to be confident in our development abilities with regard to leveraging the above-mentioned technologies.

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 100%
Upgrade metamodel To version 7 Main.EtienneTremblay 100%
Tests & JUnitTestPlan Implement tests Main.JasonKealey, Main.JordanMcManus, Main.JeanPhilippeDaigle 80%
ReqHelpAbout About and legal information Main.JeanPhilippeDaigle 100%
Fork / Join conversions Transmogrification Main.JeanPhilippeDaigle 100%
Autolayout Implemented autolayout functions Main.JasonKealey 100%
Plugins and stub binding Implementation and UI creation Main.EtienneTremblay 90%
Graph traversal / loop prevention algorithms Design and implementation Main.JeanPhilippeDaigle 70%
Deletion of paths and path elements Implementing robust handling of this requirement Main.JasonKealey 100%
Conditions Worked on conditions for ReqCharConditions Main.JordanMcManus 100%
Visual improvements Better rendering of graph elements and labels Main.JordanMcManus 100%
Documentation Framework for the help added Main.OlivierCliftNoel 10%

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
ReqElemWait, ReqElemTimer, ReqConnections Code & test Main.JordanMcManus and Main.JeanPhilippeDaigle
ReqHelpAbout, ReqBrowseHistory, ReqBrowseModel, ReqHelpOnLine, ReqDocumentation Code & test Main.OlivierCliftNoel
Many bugfixes / improvements not covered by requirements Code & test Main.JasonKealey
Continue working on stubs Code & test Main.EtienneTremblay
Update site Investigate & implement in build process Main.JeanPhilippeDaigle
User training videos Production Main.JeanPhilippeDaigle
Unit testing of model manipulation commands Coding All

-- Main.JeanPhilippeDaigle - 15 Jun 2005

⚠️ **GitHub.com Fallback** ⚠️