since developers of UNICASE are now distributed over several
institutions, we saw the need for a medium to keep everybody informed
about the project state. Therefore we decided to send a monthly
newsletter. The primary target audience of this newsletter are
developers, which are not participating regularly on the team meeting.
In the first section we summarize organizational news. In the second
part we introduce new features. These feature are partly released,
partly only available in the trunk. In the third section we introduce
features, which are currently under development and will be available
soon.
We hope this newsletter will be beneficial for you. Any feedback is
highly appreciated.
Kind regards,
Your UNICASE Team
1. Organizational
New External Release
We have deployed Version 0.4.0. Please see http://teambruegge.informatik.tu-muenchen.de/groups/unicase/wiki/1f4a8/Release_040.html
for detailed information.
New Work Item Life-Cycle
We have refined our internal life-cycle for work items. Please see http://code.google.com/p/unicase/wiki/WorkItemLifeCycle
2. New Features
New UI Extension Points
UNICASE offers new extension points in the UI to customize and extend
the standard View Navigator and MEEdtior. Please see http://code.google.com/p/unicase/wiki/ExtensionPoints?ts=1265103050&updated=ExtensionPoints
for an overview.
UI Tests
We have added a number of user interface tests mainly for the
MEEditor. These tests drive the UI by clicking buttons or simulating
keystrokes and thereby perform testing on the system level. We intend
to extend these tests for all use cases that are triggered from the
Navigator and MEEditor such as commit, update, move node, delete
element a.s.o.
To run the tests checkout the ui test plugin from test/
og.unicase.ui.test, install the swt bot plugins (see getting started
in the wiki) and run the tests with Debug As -> SWTBotTests. Do not
type or move the mouse while running the tests.
Code Generation
UNICASE now features a plugin for exporting an Ecore Model from a UML
package in a UNICASE Model. The plugins are called
org.unicase.implementation, org.unicase.implementation.edit and
org.unicase.implementation.ui. They also provide common refactoring
operations, such as extract-superclass, for UML class models. From the
exported Ecore code can be easily generated following the default EMF
code generation process. We will use this facility to model the model
of UNICASE in UNICASE and generate code from there, a.k.a.
bootstrapping.
Issue-based Merging
We have implemented issue-based merging in UNICASE. This means
conflicts during a merge a aggregated to issues that can be decided
upon as an atomic unit. This vastly reduces the number of decisions
that have to be made during a merge and also allows to postpone a
merge decision by adding a (persistent) issue to the project.
Model Modularity
We have separated our former model (org.unicase.model) into a meta-
model and a model. The meta-model only contains the model element base
class and some helper classes while the model contains the remaining
classes such as action items, UML diagrams or functional requirements.
Furthermore we made most of the plugins of UNICASE independent from
the model and only dependent on the meta model. This applies to all
EMFStore plugins, all workspace plugins, the common.ui plugin and the
navigator and meeditor plugins. This separation allows to easily
replace the whole model with another model, while retaining all
functionality of the mentioned plugins. As before it is still possible
to deliver extensions to an existing model as a separate plugin. We
are currently working on adapting the GMF Templates to the new Meta-
Model. This will enable the generation of new diagram again.
Connection over HTTPS
Version 0.4.0 connects using HTTP on its default fixed port 443. It is
therefore possible to connect from environments with strict firewall
rules only allowing fixed port access.
Spell Checker
Checks the spelling in every text field of the MEEditor based on the
Eclipse dictionary. See other/org.unicase.ui.spellchecker
Headless Clients
There is an example plugin for a UNICASE client plugin without UI in
other/org.unicase.proxyclient. A headless client is useful to provide
additional server-like services. These clients behave as a client and
connect to the server as such but they offer server functionality to
other clients. Existing headless clients include a migration client, a
speech-to-text client and a web interface client.
Link Recommendation
We developed a set of plugins to recommend traceability links based on
VSM, LSI and structural approaches. See other/LinkRecommendation
ModelElement URLs
Links to model elements can be exported and pasted to websites. By
clicking on the Link, Eclipse will start and UNICASE will display the
corresponding model elements.
3. Features Coming Soon
Code Location
It will be possible to Link to a code location from the UNICASE model.
The location will be resistant to changes in the code. This will allow
tracing from code to model and vice versa.
Code Change Tracking
It will be possible to link changes made in the source code to certain
work items. This should ease the review process. Furthermore we plan
to make releases configurable on a model level.
RAP Development
We are currently working on web applications for UNICASE. This
includes task lists for individual teams, pages for bug reporting and
accessible lists of team members. We plan to release the first web
applications in March. The implementation is based on Eclipse RAP. We
provide a headless client for the EMFStore, which checks out the data
and provides it as a web server.
Push Notifications on Model Updates
We are currently adding the possibility for clients to register at the
workspace for updates of the model on the server. Every time a new
commit is accepted at the server all listeners will be notified.