MilestoneFourStatusReport - JUCMNAV/projetseg-update GitHub Wiki
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.
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
(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.
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 |
- 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.
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 | ? |
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 |